Java中Set和List接口之间的区别
SetvsList
在这里,我们将看到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]