JAVA中列表,集合之间的区别

Posted 有梦想的咸鱼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA中列表,集合之间的区别相关的知识,希望对你有一定的参考价值。

整体来看List,Set,Map都是实现了Collection接口的接口。

  1. 重复性:
    • List允许存在重复的元素,也就是说List中可以在不影响现有元素的值及其索引的同时插入新的重复元素。
    • Set不允许存在重复的元素,Set集合都不允许插入重复元素。
    • Map是一种以键值对形式存储元素的映射类型集合,对Map而言key(键)是唯一的,value(值)是可重复的。
  2. 空值性:
    • List允许任意数量的空值。
    • Set最多允许一个空值。
    • Map只允许出现一个空键,但允许任意数量的空值。
  3. 排序性:
    • List保持每个元素的插入顺序。
    • Set中的元素都是无序的,但某些Set的实现类可以以某种顺序对其中的元素进行排序。(PS:LinkedHashSet按照元素的插入顺序进行排序。)
    • Map与Set一样对元素惊醒无序存储,但Map某些实现类也会对元素进行排序。(PS:TreeMap按照键对其中的元素进行升序排序,LinkedHashMap按照每个元素的插入顺序进行排序)
  4. 实现类:
    • List:ArrayList、LinkedList等等。
    • Set:HashSet、LinkedHashSet、TreeSet、SortedSet等等。
    • Map:HashMap、TreeMap、WeakHashMap、LinkedMashMap、IdentityHashMap等等。
  5. 使用场景:
    • 如果需要时常根据元素的索引值进行查询操作,那么List(ArrayList)是一种不错的选择。
    • 如果你的数据不允许重复的值存在,Set是比较适合的选择。
    • 如果需要保留每个元素的插入顺序,那么首选还是List集合。
    • 如果你的数据需要进行key-value映射,那么就用Map。

原文引用:JAVA教程

以上是关于JAVA中列表,集合之间的区别的主要内容,如果未能解决你的问题,请参考以下文章

Java五个最常用的集合类之间的区别和联系

java - 并发集合 VectorsynchronizedCollectionCopyOnWriteArrayList之间的区别。

Python中的集合和列表有啥区别?

Java中Collection和Collections的区别

Java自学-集合框架 HashSetLinkedHashSetTreeSet之间的区别

数组和集合的区别?