1.常用List、Set(Collection接口)Map集合
数组
长度固定
数据类型数:数据
集合
长度可变
存放对象的引用
2.构成Collection的单位被称为元素,Collection接口提供了各种方法,List和Set可以直接使用
add(Object),remove(Object),isEmpty()判断集合是空,iterator()迭代器,size()元素个数
iterator()遍历集合类的标准访问方法,从而避免向客户端暴露集合的内部结构,Iterator it=list.iterator();//创建迭代器 i.hasNext()//判断下一个是否为零 String str=it.next()获取集合中的元素
3.List集合包括List接口和其所实现的类,允许集合中的元素重复,元素的顺序就是对象插入的顺序。List接口实现了Collection接口,还有两个重要的,get(int index) set(int index,Object obj)
ArrayList
可变数组
快速随机访问
否
允许null
LinkedList
链表结构保存
不能
插入删除效率高
4.Set集合中对象不按特定顺序排序,不允许有重复元素
HashSet
实现Set接口
不保证迭代顺序
允许null
TreeSet
还实现java.util.SortedSet
自然顺序递增或迭代
TreeSet新增方法,first/last()返回Set中第一个或最后一个元素,comparator()返回对Set元素排序的比较器,headSet/tailSet(Object obj)返回一个新的Set集合,包含obj之前/后的元素,subSet(object from,object to)
5.MAP集合,MAP没有提供Collection接口,其提供的是key到value的映射,且单一映射
提供方法,put(key k,value v)集合中添加key和对应的value,containsValue(0bject key/value)集合中含指定的值返回true,get(Object key)存在的key所对应的值,keySet()集合中所有键对象形成Set集合,values()
HashMap类
基于哈希表
快速添加和删除
允许null
TreeMap类
对象存在一定顺序
差一些