集合

集合

1.collection接口是set、list和queue接口的父接口
基本操作:add()、addAll()、clear()、contains()、iterator()、remove()、retainAll()、size()、toArray()。

2.Collection的遍历可以使用Iterator接口或者foreach循环实现

3.Set子接口
3.1 HashSet
特点:(1)无序且不可重复,加入的元素注意hashCode()方法的实现
(2)HashSet不是同步的,多线程访问同一步HashSet对象,需要手工同步
(3)集合元素值可以为null
3.2 SortedSet接口及TreeSet实现类
TreeSet是SortedSet接口的实现类,因需要排序,所以性能肯定差于HashSet.

4.List子接口
4.1 ArrayList和Vector实现类
(1)都是基于数组实现的List类
(2)ArrayList是线程不安全的,而Vector是线程安全的.但Vector的性能会 比ArrayList低.
(3)Vector提供一个子类Stack,方便模拟”栈”这种数据结构.
(4)ArrayList随机访问速度一般,插入 删除 迭代速度一般.有序且可重复的
4.2 LinkedList类
链表实现的,随机访问速度不太好,插入 删除 迭代速度非常快.

5.Map集合
采用key-value键值对的方式进行存储.
key是唯一的,value可以重复.
key是无序唯一的,value是无序不唯一的.
map接口有两个集合HashMap和TreeMap,hashMap采用哈希表的存储结构,数据是无序且唯一的(实现唯一的方式是重写Hashcode和equals方法).

三种遍历方式
(1)map.keySet()将map中的key以set集合的形式返回,遍历所有key
(2)Set<Entry<K,V>> entrySet()每组键值对是一个Entry实例
(3)Collection values() 存入到集合中返回,新循环遍历

总结:

Collection 是对象集合, Collection 有两个子接口 List 和 Set,
List 可以通过下标 (1,2..) 来取得值,值可以重复,而 Set 只能通过游标来取值,并且值是不能重复的
ArrayList , Vector , LinkedList 是 List 的实现类
ArrayList 是线程不安全的, Vector 是线程安全的,这两个类底层都是由数组实现的
LinkedList 是线程不安全的,底层是由链表实现的
Map 是键值对集合
HashTable 和 HashMap 是 Map 的实现类
HashTable 是线程安全的,不能存储 null 值
HashMap 不是线程安全的,可以存储 null 值

ArrayList集合时有序且可重复的,HashSet集合是无序且不可重复的

List内部存储是数组形式,数组是通过索引的方式存取值,所以可以重复有序;
set内部存储是hashmap,k-v键值对的形式存储,k值不允许重复,所以set集合不能重复且无序

×

纯属好玩

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

文章目录
  1. 1. 集合
    1. 1.0.0.1. 总结:
本站总访问量: , 本页阅读量: