java集合的数据结构

String[]: 数组    固定长度
  ArrayList<E>: Object[] 数组实现    查询快、插入快、删除慢      有序    1.5倍+1扩容


  LinkedList<E>: Entry<E> next、previous 链表实现  插入快、删除快     有序  1.5倍+1扩容


  HashMap<K,V>: 数组+链表实现  通过key-value对存储数据,查询快 、插入快、删除快;  如果键相同,就替换旧值     无序  2倍扩容


  HashSet<E>: 使用HashMap<E,Object>实现   用了键值    无序   2倍扩容
  LinkedHashSet 继承了HashSet
  LinkedHashMap 继承了HashMap


  TreeMap 二叉树             插入慢、查询快         有序(键)  键的排序需要提供comparator
  
  HashMap的键K:   在hash(K.hashcode())  用到了键的hashcode
               在get()时用到了键的equals()方法
      在使用HashMap时,如果键是一个对象需要重写hashcode()、equals()方法

猜你喜欢

转载自zw7534313.iteye.com/blog/2420388