Java集合类学习总结

   1.Collection接口是最基本的接口  一个Collection代表一组Object,Collection派生的两个接口Set和List

  2.List是有序的Collection,能够精确的控制每个元素的插入位置。使用下标访问每个元素,List允许有相同的元素

  3.LinkedList实现了List接口,允许null元素,LinkedList可用作堆栈(stack),队列(queue),或双向队列(deque),LinkedList没有同步方法,多线程同时访问List,必须实现访问同步,一个解决办法是:

  List list = Collections.synchronizedList(new LinkedList());

  4.ArrayList实现了可变大小的数组,允许所有元素,包括null,一个ArrayList实例有一个容量(Capacity),非同步的

  5.Vector和ArrayList很像,区别Vector是线程同步的

  6.Stack继承自Vector,实现一个先进后出的堆栈。Stack刚创建的时候是空的

  7.Set接口是不包含重复元素的Collection,最多允许有个null元素

  8.Map没有继承Collection接口,是一组key-value映射

  9.HashTable继承Map接口,实现一个key-value映射的hash表,任何非空的对象都可作为key或value,线程同步

  作为key的对象通过计算散列函数来确定与其对应的value的位置,任何作为key的对象都必须实现hashCode()和equals()方法,注意两个不同对象的hashcode可能相同

  10.HashMap和HashTable类似,但HashMap是非同步的,并且允许为null

  11.WeakHashMap是一种改进的HashMap,对key实行“弱引用”,如果一个key不再被外部引用,该key可以被GC回收。

  注:

    如果涉及到堆栈,队列等操作,要考虑使用List,需要快速的插入和删除元素的使用LinkedList,需要快速随机访问,使用ArrayList

    对hash表的操作,作为key的对象要正确重写equals和hashCode方法

    尽量返回接口而非实际的类型

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 作者:周明耀原文地址:http://www.ibm.com/developerworks/cn/java/j-lo...
    IT程序狮阅读 3,863评论 0 5
  • Collection & Map Collection 子类有 List 和 Set List --> Array...
    任教主来也阅读 8,354评论 1 9
  • Java集合是java提供的工具包,包含了常用的数据结构:集合、链表、队列、栈、数组、映射等。Java集合工具包位...
    聂叼叼阅读 3,365评论 0 2
  • 第一次写稿,新人多多关照。 从小到大,只要跟别人一比较,那么问题就来了,在得到的过程中或许会有一点累。小学时,为...
    夜曲的温柔阅读 2,622评论 1 1
  • 一时累忧, 落雨如洗。 高堂几万里, 故朋不可期。 独独己。
    帝司阅读 1,709评论 0 2