List接口允许存储有序集合。它是集合的子接口。它是对象的有序集合,允许在其中存储重复值。列表保留了广告顺序,它允许位置访问和插入元素。

List 声明:

public abstract interface List extends Collection

java.util 包和扩展集合接口中的 set 接口是对象的无序集合,其中不能存储重复值。它是实现数学集的接口。此接口包含从集合接口继承的方法,并添加限制插入重复元素的功能。

Set 接口声明为:

public interface Set extends Collection

示例:

Input :  Add Elements = [1, 2, 3, 1]
Output:  Set = [1, 2, 3]
     List = [1, 2, 3, 1]

Input :  Add Elements = [a, b, d, b]
Output:  Set = [a, b, d]
     List = [a, b, d, b]

示例代码:

// Implementation of List and Set in Java
import java.io.*;
import java.util.*;

class YiibaiDemo {
    public static void main(String[] args)
    {
        // List declaration
        List<Integer> l = new ArrayList<>();
        l.add(5);
        l.add(6);
        l.add(3);
        l.add(5);
        l.add(4);

        // Set declaration
        Set<Integer> s = new HashSet<>();
        s.add(5);
        s.add(6);
        s.add(3);
        s.add(5);
        s.add(4);

        // printing list
        System.out.println("List = " + l);
        // printing Set
        System.out.println("Set = " + s);
    }
}

运行结果:

List = [5, 6, 3, 5, 4]
Set = [3, 4, 5, 6]

List 和 Set 的区别:

List Set
List 是一个索引序列。 Set 是一个非索引序列。
List允许重复元素 Set 不允许重复元素。
List可以按位置访问元素。 Set不允许对元素进行仓位访问。
List可以存储多个空元素。 Set空元素只能存储一次。
List的实现有 ArrayListLinkedListVectorStack Set 实现有 HashSetLinkedHashSet