美文网首页
Java集合 - Map, List, Set

Java集合 - Map, List, Set

作者: Ryan_Zhang | 来源:发表于2018-12-04 16:07 被阅读0次
    集合选择
    1. HashMap:
      HashMap是一个无序的键值对,HashMap使用哈希算法来确定存储元素的位置,所以存储/查找性能较好。存储提供了两个方法,put方法中如果key重复则会更新value,putIfAbsent方法中如果key重复不会更新value。
    2. LinkedHashMap:
      使用双向链表来维护键值对的顺序,该链表负责维护Map的迭代顺序,与键值对的插入顺序一致。
    3. TreeMap:
      TreeMap是一个红黑树,每个键值对即红黑树的一个节点。存储键值对时,需要根据key对节点进行排序。可以保证所有的键值对处于有序状态。有两种排序方式: 自然排序、定制排序
    4. ArrayList:
      基于Object[]实现的List类,是一个动态增长、允许再分配的Object[]。
    5. HashSet:
      简而言之,就是一个只有key没有value的HashMap。
    6. LinkedHashSet:
      根据元素的hashCode值来决定元素的存储位置,用链表维护元素的顺序。
    7. TreeSet:
      保证元素的排序状态。

    Set就是一种特殊的Map, 只有key没有value.

    1. Hash***:(HashMap, HashSet)
      以哈希算法分配存储位置。
    2. LinkedHash***:(LinkedHashMap, LinkedHashSet)
      以哈希算法分配存储位置且维护链表结构。
    3. Tree***:(TreeMap, TreeSet)
      排序。

    ArrayList和LinkedList
    添加/删除ArrayList性能更好,遍历的话列表更占优势。另一个参考维度是集合的数据量,优劣势并非绝对。

    相关文章

      网友评论

          本文标题:Java集合 - Map, List, Set

          本文链接:https://www.haomeiwen.com/subject/cazmcqtx.html