java基础之 集合

http://blog.csdn.net/u011240877/article/details/52773577

hashmap&hashtable:http://blog.csdn.net/fujiakai/article/details/51585767

linkedhashmap:http://blog.csdn.net/justloveyou_/article/details/71713781

linkedhashmap:https://blog.csdn.net/justloveyou_/article/details/71713781

 

Collection<E> 接口是所有单列集合的共同父接口,下面列出了常用的Collection子类集合及其继承关系。

Collection:单列集合

  • List  有序(存储顺序和取出顺序一致),可重复
    • ArrayList ,线程不安全,底层使用数组实现,查询:O(1),增加:O(1),删除:O(n)。查询效率高。初始容量10,每次容量不足时,自增长度的一半,int newCapacity = oldCapacity + (oldCapacity >> 1)
    • LinkedList , 线程不安全,底层使用双向链表实现,查询:O(n),增删:O(1)
    • Vector , 线程安全,底层使用数组实现,查询快,增删慢。效率低。每次容量不足时,默认自增长度的一倍(如果不指定增量的话)
  • Set   元素唯一
    • HashSet 底层是由HashMap实现的,无序,增删查:O(1)
      • LinkedHashSet 底层数据结构由哈希表和链表组成。哈希表保证元素的唯一性,链表保证元素有序。增删查:O(1)
    • TreeSet 基于 TreeMap (红黑树)的 NavigableSet 实现。有序,增删查:O(logN)

 Map:键值对集合,key唯一

  • HashMap,线程不安全,基于数组+链表实现。key,value均可为空,增删查:O(1)
    • LinkedHashMap 线程不安全, HashMap + 额外的双向链表。按插入顺序。增删查:O(1)
  • HashTable,线程安全,其他基本等同hashmap
  • TreeMap,线程不安全,基于红黑树实现。有序。增删查:O(logn)
  • WeakHashMap,线程不安全,特征:存储元素是弱引用,可以被gc,通常用于缓存
posted @ 2015-06-19 17:00  情歌z  阅读(185)  评论(0编辑  收藏  举报