Java集合总结

来源:互联网 发布:知天下资源吧网址 编辑:程序博客网 时间:2024/05/22 13:32

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框架图
  • java性能参考: