结构

collection(接口)

  List(接口)

    LinkedList(类)

    ArrayList(类)

    Vector(类)

      Stack(类)

  Set(接口)

Map(接口)

  Hashtable(类)

  HashMap(类)

  WeakHashMap(类)

 

1.如果考虑到用堆栈,队列等操作,应考虑用List,对于需要快速插入,删除元素,应使用LinkedList,如果需要快速访问随机元素使用ArrayList。

2.哈希表的操作,作为key的对象要正确复写equls和hashcode方法。

3.尽量返回接口而非实际的类,如返回List而不是ArrayList,这样如果以后要将ArrayList改成LinkedList,客户端代码不用改变。

4.List可以有类似数组的下标操作,且允许相同的元素存在,而Map是以键值对(key-value)的形式存在,不能允许相同的键存在。

 

(1)ArrayList类:ArrayList实现可变大小的数组,长度随着元素的增加而变化,且可以存在相同的元素。

(2)HashMap类:允许null,即null key,nul lvalue,且存在的形式是以键值对(key-value)的形式,不允许有相同的键(key)。