1.Collection(接口),被实现。实现类常常需要提供两个构造方法:无参数的,一个Collection对象的单参数构造方法,进行复制。
2.Collection集合分类:
@1.有序,无序之分
- List(接口):序列,有序,添加、查询的位置可控。这些实现类都必须重写接口中的方法,来实现可修改的序列。
- Set()
@2.元素是否可以重复之分
- List(接口)
@3.对集合中的元素是否有限制之分。
@4.集合是否是同步的
3.对于开发中,我们直接使用其实现好的子类即可了,往往不需要我们去实现接口,重写方法。
针对JDK中已经实现的集合类,给出如下使用总结:
- ArrayList(不同步,适合单线程)、Vector(同步,适合多线程)通过数组实现,数组大小可变。允许null元素,可多个。获取iterator后,必须使用iterator的remove,add方法,对列表进行修改,否则失败。当需要增长时,Vector默认增长为原来一培,而ArrayList却是原来的一半
- LinkedList(不同步),可以堆栈、队列,或者双端队列。允许null元素,可多个。获取iterator后,必须使用iterator的remove,add方法,对列表进行修改,否则失败
- HashSet(不同步),null至多一个。获取iterator后,必须使用iterator的remove方法,对列表进行修改,否则失败。迭代顺序会变动。
- TreeSet(不同步)迭代顺序可以固定,根据元素自然顺序或者制定,构造方法指定。
- HashTable(同步的),允许null元素作为键或值。使用iterator迭代器修改集合结构。
- HahsMap(不同步),允许null 值和 null 键,迭代顺序不保证一致。
Properties(线程安全)
继承于Hashtable,
-
- java性能参考: