首页 > 代码库 > java集合系列

java集合系列

     工作以来,一直对java集合理解的不够全面,不够深入,就是常用的ArrayList/HashMap/Set/List,有时候会用一下LinkedList。一时兴起,可能对TreeSet,HashSet有点兴趣。不过集合这些公司面试经常问的,特别是高大上的公司还问的特别深。所以自己搜索一些资料,按自己的理解重新整理一下。

java的集合框架图:http://www.cnblogs.com/lmy-foolishbird/p/5405641.html

技术分享

关键点:

1.顶级接口:java.util.Collection,java.util.Iterator.  (java.lang.Iterable不是java.util里的。实现了Iterable接口的类可以通过Iterator来遍历集合Collection,不过遍历Map)

2.Collection下面子接口决定内部元素有序还是无序:

      List接口,列表,常用的具体实现有数组实现的ArrayList,链表实现的LinkedList.都允许添加重复的元素。无序

      Set接口,集合,不允许重复元素的。常见实现类有HashSet(通过Map的HashMap实现,无序),TreeSet(通过Map的TreeMap实现,有序还实现的SortedSet接口,所以是有序的)

      Deque接口,队列,双向的

      Vector类是一个向量数组,可以实现可增长的对象数组,通常的实现是Stack栈,先进后出;

3.集合框架里用了一种设计模式:适配器模式。适配器模式的关键点:如果一个雷,想实现一个接口的部分方法,不是全部的,这个时候添加一个中间的抽象类,这个抽象类实现接口中所有方法,然后我们自己的最前线的实现类继承这个抽象类,实现抽象类的部分方法就可以了。

  比如:Map接口,通过AbstractMap抽象,在到具体的TreeMap,HashMap实现类。

4.Arrays和Collections工具类,是用来操作数组、集合的两个工具类。

5.后面源码都是以jdk1.8查的

java集合系列