Java 集合和列表之间有什么区别?

Java 集合和列表之间有什么区别?,java,list,set,Java,List,Set,集合和列表接口之间的根本区别是什么? 列表是项的有序分组 集合是一组无序的项目,不允许重复(通常) 从概念上讲,我们通常指的是一个无序分组,它允许将重复项作为一个包,而不允许将重复项作为一个集合。排序。。。列表有顺序,集合没有顺序。list是元素的有序序列,而set是无序的元素的独特列表(谢谢,) 有序的集合(也称为 顺序)。此界面的用户 能够精确地控制系统中的位置 列出插入的每个元素。这个 用户可以通过其 整数索引(列表中的位置), 并在列表中搜索元素 不包含任何内容的集合 重复元素。更

集合
列表
接口之间的根本区别是什么?

  • 列表是项的有序分组
  • 集合是一组无序的项目,不允许重复(通常)

从概念上讲,我们通常指的是一个无序分组,它允许将重复项作为一个包,而不允许将重复项作为一个集合。

排序。。。列表有顺序,集合没有顺序。

list
是元素的有序序列,而
set
是无序的元素的独特列表(谢谢,)

有序的集合(也称为 顺序)。此界面的用户 能够精确地控制系统中的位置 列出插入的每个元素。这个 用户可以通过其 整数索引(列表中的位置), 并在列表中搜索元素

不包含任何内容的集合 重复元素。更正式地说, 集合不包含元素对e1 和e2,使得e1等于(e2),并且 大多数情况下只有一个空元素。正如 它的名字,这个接口模型 数学集合抽象


集合不能包含重复的元素,而列表可以包含重复的元素。列表(在Java中)也意味着顺序。

所有
列表
类都保持插入顺序。它们根据性能和其他特征使用不同的实现(例如,
ArrayList
用于特定索引的访问速度,
LinkedList
用于简单地维护顺序)。由于没有密钥,因此允许重复


集合
类不维护插入顺序。它们可以选择性地施加特定顺序(如
SortedSet
),但通常具有基于某些哈希函数的实现定义的顺序(如
HashSet
)。由于
集合
是通过键访问的,因此不允许重复。

集合是一组无序的不同对象-不允许重复对象。它通常使用被插入对象的哈希代码来实现。(特定实现可能会添加顺序,但Set接口本身不会。)

列表是一组有序的对象,其中可能包含重复项。它可以通过
数组列表
链接列表
等来实现。

元素的有序列表(唯一或不唯一)
符合名为
列表的Java接口
可以通过索引访问

使用实现

  • 链接列表
  • ArrayList
唯一元素列表:
符合名为
Set

的Java接口 不能通过索引访问吗

使用实现

  • 散列集(无序)
  • LinkedHashSet(已订购)
  • 树集(按自然顺序或提供的比较器排序)

这两个接口
Set
List
都符合名为
Collection
的Java接口这可能不是您要寻找的答案,但collections类的JavaDoc实际上是非常具有描述性的。复制/粘贴:

有序的集合(也称为 顺序)。此界面的用户 能够精确地控制系统中的位置 列出插入的每个元素。这个 用户可以通过其 整数索引(列表中的位置), 并在列表中搜索元素

与集合不同,列表通常允许 重复元素。更正式地说, 列表通常允许成对的 元素e1和e2,以便 e1.等于(e2),它们通常 允许多个空元素,如果它们 完全允许空元素。事实并非如此 不可想象有人会希望 实施禁止 通过抛出运行时 当用户尝试 插入它们,但我们希望使用这种用法 这是罕见的

名单:
List
s通常允许复制对象。
列表
必须排序,因此可以通过索引访问

实现类包括:
ArrayList
LinkedList
Vector

设置:
设置
s不允许重复对象。 大多数实现是无序的,但它是特定于实现的

实施类包括:
HashSet
(无序),
LinkedHashSet
(已订购),
TreeSet
(按自然顺序或提供的比较器排序)

1.List允许重复值,set不允许重复值

2.列表维护在列表中插入元素的顺序 Set不能维持秩序。 3.列表是元素的有序序列,而集合是无序的元素的不同列表。

List

  • 是元素的有序分组
  • 列表用于收集具有重复项的元素
  • 新方法在列表中定义 接口
  • 设置

  • 是元素的无序分组
  • 集合用于收集没有重复项的元素
  • 集合接口中没有定义新方法,因此我们只能对集合子类使用集合接口方法
  • Set
    List
    都用于存储
    E
    类型的元素。区别在于
    Set
    以无序方式存储,不允许重复值<代码>列表
    用于按顺序存储元素,它允许重复值


    Set
    元素不能通过索引位置访问,而
    List
    元素可以通过索引位置访问。

    Java中List和Set之间的一些值得注意的区别如下所示:

    1)Java中列表和集合的根本区别在于允许重复元素。Java中的List允许重复,而Set不允许任何重复。如果在集合中插入重复项,它将
    s = [] as Set
    l = []
    
    max = 5
    print "random Numbers :"
    20.times{
    e = (int)Math.random()*max
    s << e
    l << e
    print "$e, "
    }
    
    
    println "\n"
    println "Set : $s "
    println "list : $l
    
    import java.util.*;
    
    public class ListExample {
    
     public static void main(String[] args) {
        // TODO Auto-generated method stub
    
        List<Integer> l=new LinkedList<Integer>();
        l.add(001);
        l.add(555);
        l.add(333);
        l.add(888);
        l.add(555);
        l.add(null);
        l.add(null);
    
        Iterator<Integer> il=l.iterator();
    
        System.out.println(l.get(0));
    
        while(il.hasNext()){
            System.out.println(il.next());
        }
    
        for(Integer str : l){
            System.out.println("Value:"+str);
        }
     }
    
    }
    
    import java.util.TreeSet;
    
    public class SetExample {
    
     public static void main(String[] args) {
        // TODO Auto-generated method stub
    
        TreeSet<String> set = new TreeSet<String>();
        try {
            set.add("hello");
            set.add("world");
            set.add("welcome");
            set.add("all");
    
            for (String num : set) {
                System.out.println( num);
    
            }
            set.add(null);
        } catch (NullPointerException e) {
            System.out.println(e);
            System.out.println("Set doesn't allow null value and duplicate value");
        }
    
     }
    
    }