第一次系统的阅读理解Java Collections Framework的源码,已经粗略的学习完了,做个简单的总结。首先把资料放置在第一位,想系统学习的主要原因在工作之余想自学点东西,看了master24 的博文之后,感觉有必要把Java长用的包学习一下,一来可以熟悉下Collections的API使用,用到再查和熟练使用总是不一样的。再者Collections Framework设计者书籍《Effective Java》荣获Jolt大奖,参考书及源码肯定有很多可学之处,而且相对于Java很多开源程序代码量并不大。
  如果想找一个开源的代码来读,之前又没有系统阅读代码的经验,不想读Tomcat、Jobss、Struts、Hibernate、Spring中大块头的经典开源项目,阅读Collection蛮好,代码量小,获得过Jolt大奖,质量无容置疑。
  一、集合对比
父类 数据结构 Java实现 优点 缺点
List     有序存放、元素可以重复    
  ArrayList 数组 Object[] 索引快 插入慢
  LinkedList 双链表 Entry Inner Class 插入块 索引慢
  Vector   与ArrayList类似 线程安全  
  Stack        
Set     无重复元素,不排序。    
  HashSet HashMap实现
HashMap  存取 hashMap.put(value, new Object);
(如果是值类,通过覆盖hashCode与equals方法确认元素是否重复)
查找速度快  
  TreeSet  

NavigableMap 存取 hashMap.put(value, new Object);

(可以通过存入的元素实现Comparable接口,比较元素与元素排序操作)
   
Map     Entry implements Map.Entry    
  HashMap Hash Table + 单链表 Entry Inner Class + Entry[]    
  TreeMap 红黑二叉树      
  java.util.Hashtable     线程安全