Java中Set和List接口之间的区别

Set vs List

在这里,我们将看到Java中Set和List接口之间区别

首先,我们将看到Set接口与Java中的List接口有何不同?

在Java中Set接口

  • 该接口在java.util包中可用。

  • 此接口是Collection接口的子接口。

  • 如果我们要表示一组单独的对象,其中“不允许使用重复的对象或元素”(即,我们不能多次插入一个对象)。

  • 如果我们要表示一组不保留“插入顺序”的单个对象(即,插入顺序不必与检索顺序相同)。

  • 我们应该使用Set接口,其中“不允许重复对象”(即重复性很重要)和“插入顺序不被保留”(即插入和检索的顺序不重要)。

  • Set接口的实现类是HashSet和LinkedHashSet。

示例

假设我们有一个包含很少元素的Set。在这里,我们以[10,20,30,50,null]的顺序添加元素,并且如果我们正在检索元素,则检索元素的顺序可以不同(即,不需要相同的插入和检索)元素的顺序)。因此输出将有所不同,并且顺序将类似于[null,50,20,10,30]。

//Java程序演示Set接口的行为 

import java.util.*;

class SetInterface {
    public static void main(String[] args) {
        //创建一个实例
        Set set = new HashSet();

        //通过使用add()方法添加元素
        set.add(10);
        set.add(20);
        set.add(30);
        set.add(50);
        set.add(null);
        //set.add(20)*如果我们再次加20,则不会得到 
        //错误,但是重复的元素将被忽略

        //显示集元素
        System.out.println("Retrieval order of the elements in Set is :" + set);
    }
}

输出结果

E:\Programs>javac SetInterface.java

E:\Programs>java SetInterface
Retrieval order of the elements in Set is :[null, 50, 20, 10, 30]

Java中的列表接口

  • 该接口在java.util包中可用。

  • 此接口是Collection接口的子接口。

  • 如果要表示一组单个对象,其中“允许使用重复的对象或元素”(即,我们可以多次插入一个对象)。

  • 如果我们要表示一组保留“插入顺序”的单个对象(即插入顺序必须与检索顺序相同)。

  • 我们应该使用List接口,其中“允许重复对象”(即重复性不重要)和“插入顺序被保留”(即插入和检索的顺序很重要)。

  • List接口的实现类是ArrayList和LinkedList,Vector,Stack等。

示例

假设我们有一个包含很少元素的列表。在这里,我们以[10,20,30,50,null,30]的顺序添加元素,如果我们要检索元素,则检索元素的顺序必须相同(即,需要相同的插入和元素的检索顺序。)因此输出将是相同的,并且顺序将类似于[10,20,30,null,30]。

//Java程序演示List接口的行为

import java.util.*;

class ListInterface {
    public static void main(String[] args) {
        //创建一个实例
        List list = new ArrayList();

        //通过使用add()方法添加元素
        list.add(10);
        list.add(20);
        list.add(30);
        list.add(50);
        list.add(null);

        //如果再加30,就不会出错 
        //因为允许重复元素
        list.add(30);

        //显示列表元素
        System.out.println("Retrieval order of the elements in List is :" + list);
    }
}

输出结果

E:\Programs>javac ListInterface.java

E:\Programs>java ListInterface
Retrieval order of the elements in List is :[10, 20, 30, 50, null, 30]