设置和列表
数组列表和链接列表之间的区别
在我们了解实际差异之前,让我们先了解它们到底是什么?
什么是套装?
我们在数学中遇到了Set的概念,而这里的Set或多或少意味着相同。是的,它是元素的集合,在大多数情况下,是一组相似的元素。您可以尝试将这些元素添加到Set并尝试打印以了解它是如何实际存储的。
输入集: 20, 50, 10, 30.
它实际上存储在Set as中 10, 20, 30, 50.
元素在此处排序,并且不按其插入顺序存储。这是Set的一个特性,它总是在存储之前对元素进行排序,当然,它有例外,其中一个是LinkedhashSet,因为它维护元素的插入顺序。
在计算机术语中,该集包含一些其他属性,如方法和继承。方法就像函数一样,它们执行某些任务,例如添加,删除或迭代元素集。我们大多数人都以“继承”这个术语而闻名,这里的含义相同。是的,我们可以从其Collection继承一个Method,以便它可以与Set Interface一起使用。我们再次讨论一个新术语,即Set Interface,它只不过是包括方法在内的整个元素集。
怎么实现呢?
为了更好地理解,我们用它的语法代表了一个Set。从下面的语法中,您可以识别不同类型的Set,例如HashSet和TreeSet。
import java.util。*;
公共类Setexample {
public static void main(String args []){
int count [] = {34,22,10,60,30,22} {25,17,76,12,88,57};
组 尝试{ for(int i = 0; i <5; i ++){ set.add(计数[I]); } 的System.out.println(组); TreeSet sortedSeteg = new TreeSet System.out.println(“这里我们有排序的输出:”); 的System.out.println(sortedSeteg); System.out.println(“查看第一个元素:”+(整数)sortedSet.first()); System.out.println(“查看最后一个元素:”+(整数)sortedSet.last()); } catch(例外e){} } } 上述代码的输出如下。 [25, 17, 76, 12, 88] 这里我们有排序的输出: [12, 17, 25, 76, 88] 看看第一个元素:12 看看最后一个元素:88
List扩展Collection类似于Set的方式,但它保持插入的顺序。您尝试将以下名称添加到列表中,并查看如何添加到该列表。 List的输入: 约翰,南希,玛丽,爱丽丝。 它是如何存储在List中的: 约翰,南希,玛丽,爱丽丝。 只需注意它们的插入顺序。您可以确定“John”是输入和输出中的第一个元素,后面跟着插入名称的顺序。我们甚至可以考虑这个List的主要属性之一。 让我们看一下List的一些方法,比如下面语法中的ArrayList和LinkedList。 import java.util。*; 公共类Collectionssample {
public static void main(String [] args){ 列出a1 = new ArrayList(); a1.add(“约翰”); a1.add(“南西”); a1.add(“玛丽”); a1.add(“爱丽丝”); System.out.println(“ArrayList Elements are”); System.out.print(“ t”+ a1);
List l1 = new LinkedList(); l1.add(“西尔维娅”); l1.add(“阿琼”); l1.add(“迪皮卡”); l1.add(“苏珊”); 的System.out.println(); System.out.println(“LinkedList Elements are”); System.out.print(“ t”+ l1); }}
上述语法的输出如下。 ArrayList元素是 [约翰,南希,玛丽,爱丽丝] LinkedList元素 [Silvia,Arjun,Deepika,Susan] 从上面的代码可以清楚地看出,ArrayList和LinkedList都维护了插入顺序。 Set和List有自己的方法,让我们在这里看一下它们中的一些。 Set永远不会维护它们插入其中的元素的顺序,而List会保留它。 LinkedHashSet的此规则有一个例外,因为它维护插入的顺序,但另一个Set(如HashSet和TreeSet)在存储之前对元素进行排序。以下实施例对其进行描述。 组 输入:Cat,Doll,Apple。 存储为:Apple,Cat,Doll。 列表输入:Cat,Doll,Apple。 存储为:猫,娃娃,苹果。 Set永远不允许重复,而List允许重复。如果必须将重复值添加到列表中,则会覆盖该值。查看Set和List重复项的示例。 设置输入:10,20,20,50。 存储为:10,20,50。 列表输入:10,20,20,50。 存储为:10,20,20,50。 Set只能有一个空值,而List可以有多个空值,并且不限于任何数字。 设置输入:null,null,Man,Dog,Plane。 存储为:null,Dog,Man,Plane。 列表输入:null,null,Man,Dog,Plane。 存储为:null,null,Man,Dog,Plane。 Iterator方法适用于Set和List,而ListIterator方法仅适用于List。 ListIterator可用于遍历List以及向后遍历List。 Set没有遗留类,而List接口有一个称为'vector'的遗产。向量使用List接口,因此它保持插入顺序。由于同步工作,向量在添加,删除和更新中的性能稍慢。 几乎没有Set实现是HashSet,LinkedHashSet和TreeSet。 List的很少实现包括ArrayList和LinkedList。 Set和List的使用完全取决于维护插入顺序的要求。正如我们已经知道Set永远不会保持插入顺序,它可以在订单不太重要时使用。以类似的方式,在需要维护插入序列时使用List。 希望,我们已经包含了Set和List之间的所有可能的区别。如果您觉得我们错过了什么,请告诉我们。列表是什么?
怎么实现呢?
他们如何不同?
S.No
集 - 方法
清单 - 方法
1.
加() - 将对象添加到集合中。
void add(int index,Object obj) - 它在调用列表的指定“索引”处添加了对象'obj',并确保通过移动前面的元素不会覆盖任何元素。
2.
clear() - 它是从集合中删除对象。
boolean addAll(int index,Collection c) - 它将整个集合'c'添加到调用列表和指定的'index'。它还确保不会覆盖任何元素。我们还可以通过检查返回值来检查其操作的正确性。如果更改成功则返回“true”,否则返回值“false”。
3.
包含() - 它是检查Set中是否包含某个对象。如果对象存在于Set中,则返回值“true”。
对象get(int index) - 它返回指定'index'处的元素或对象。
4.
是空的() - 确定集合是否有助于其中的元素。如果没有元素,则返回值“true”。
int lastIndexOf(Object obj) - 它的工作原理类似于反向 指数() 方法。它返回指定的Object'obj'的最后一次出现,如果列表中没有这样的对象,则返回值'1'。因此,它也可以用作 包括() 设置接口的方法。
6.
去掉() - 通过将其指定为方法的参数来从集合中删除元素。
ListIterator listIterator() - 它返回一个迭代器到List的起始索引。
7.
尺寸() - 计算集合所具有的对象或元素的数量。
ListIterator listIterator(int index) - 它有助于从指定的'index'开始迭代调用List。
8.
–
对象删除(int索引) - 它删除指定'index'处的对象,并返回已删除的元素作为结果。它还减少结果列表索引以反映删除。
9.
–
对象集(int index,Object obj) - 它是将Object'obj'分配给指定'index'的调用列表。
10.
–
List subList(int start,int end) - 它是将索引'start'中的对象包含在已调用Method的列表中的索引'end'中。
何时使用Set&List?
表格形式的差异:
S.No
差异在于
组
名单
1.
广告订单
它维护插入顺序。插入的第一个保留在第一位,依此类推,无论其价值如何。
它永远不会维护插入顺序。
2.
方法
它使用add(),clear(),contains(),isEmpty(),remove()和size()等方法。
它使用add(),addAll(),get(),lastIndexOf(),ListIterator()和/或参数,remove(),set()和subList()等方法。
3.
重复
它永远不会允许重复,并且在这种情况下,值会被覆盖。
它允许重复。
4.
空值
它最多只能有一个空值。
它可以包含任意数量的空值。
5.
使用Iterator()和listIterator()
它只使用方法iterator()。
它同时使用iterator()和listIterator()。
6.
遗产类的存在
没有遗产类。
它有Legacy类称为向量。
7.
实现
几乎没有Set接口实现是HashSet,LinkedHashSet和Tree Set。
List接口实现中很少有LinkedList和ArrayList。