设置(set)和列表(list)的区别

在我们进入实际差异之前,让我们先了解一下它们到底是什么?...

Difference between Array List and Linked List

在我们进入实际差异之前,让我们先了解一下它们到底是什么?

什么是一套(a set)?

我们在数学中遇到了集合的概念,这里的集合多少有相同的含义。是的,它是元素的集合,在大多数情况下,是相似元素的集合。您可以尝试将这些元素添加到集合中,并尝试打印以了解它的实际存储方式。

输入一组:20,50,10,30。

它实际上存储在一个集合中,即10、20、30、50。

元素在这里排序,并不是按**顺序存储的。这是Set的特性之一,它总是在存储之前对元素进行排序,当然,也有例外,其中之一就是LinkedhashSet,因为它维护元素的**顺序。

在计算机术语中,集合包含很少的附加属性,例如方法和继承。方法就像函数一样,它们执行某些任务,例如添加、删除或遍历元素集。我们大多数人都知道“继承”这个词,这里的意思也是一样的。是的,我们可以从它的集合中继承一个方法,这样它就可以与Set接口一起使用。我们再次讨论一个新的术语,即集合接口,它只不过是包括方法在内的整个元素集合。

如何实施?

为了更好地理解,我们用它的语法表示了一个集合。从下面的语法中,您可以识别不同类型的集合,例如HashSet和TreeSet。

import java.util.*;

public class Setexample {

 

public static void main(String args[]) {

int count[] = {34, 22,10,60,30,22}{25, 17, 76, 12, 88, 57};

Set<Integer> set = new HashSet<Integer>();

try {

for(int i = 0; i < 5; i++) {

set.add(count[i]);

}

System.out.println(set);

 

TreeSet sortedSeteg = new TreeSet<Integer>(set);

System.out.println(“Here we have the sorted output:”);

System.out.println(sortedSeteg);

 

System.out.println(“Look at the First element: “+ (Integer)sortedSet.first());

System.out.println(“Look at the last element: “+  (Integer)sortedSet.last());

}

catch(Exception e) {}

}

}

以上代码的输出如下。

[25, 17, 76, 12, 88] Here we have the sorted output: [12, 17, 25, 76, 88] Look at the First element: 12 Look at the last element: 88

什么是列表(list)?

列表扩展集合的方式与集合类似,但它保持**顺序。您可以尝试将以下名称添加到列表中,并查看如何将其添加到列表中。

输入一个列表:约翰,南希,玛丽,爱丽丝。

如何存储在列表中:约翰、南希、玛丽、爱丽丝。

请注意它们的**顺序。您可以确定“John”是输入和输出中的第一个元素,后面跟名称的**顺序相同。我们甚至可以认为这是列表的主要属性之一。

如何实施?

让我们看看下面语法中的一些List方法,比如ArrayList和LinkedList。

import java.util.*; public class Collecti***sample {

public static void main(String[] args) {

List a1 = new ArrayList(); a1.add(“John”); a1.add(“Nancy”); a1.add(“Mary”); a1.add(“Alice”); System.out.println(” ArrayList Elements are”); System.out.print(“\t” + a1);

List l1 = new LinkedList(); l1.add(“Silvia”); l1.add(“Arjun”); l1.add(“Deepika”); l1.add(“Susan”); System.out.println(); System.out.println(” LinkedList Elements are”); System.out.print(“\t” + l1);   }}

以上语法的输出如下。

ArrayList Elements are

[John, Nancy, Mary, Alice]

LinkedList Elements

[Silvia, Arjun, Deepika, Susan]

从上面的代码可以清楚地看出,ArrayList和LinkedList都保持**顺序。

它们有何不同?

  • 方法及说明:

集合和列表有自己的方法,下面让我们来看看其中的几个。

序号 集合–方法 列表–方法
1. add()–将对象添加到集合中。 void add(int index,Object obj)–它将对象“obj”添加到调用列表的指定“index”处,并确保不会通过移动前面的元素来覆盖任何元素。
2. clear()–从集合中移除对象。 boolean addAll(int index,Collection c)–它将整个集合“c”添加到调用列表和指定的“index”处。它还确保不覆盖任何元素。我们还可以通过检查返回值来检查其操作的正确性。如果更改成功,则返回“true”,否则返回值“false”。
3. contains()–检查集合中是否包含某个对象。如果对象存在于集合中,则返回值“true”。 Object get(int index)–返回指定“index”处的元素或对象。
4. isEmpty()–确定集合中没有元素时是否有帮助。如果没有元素,则返回值“true”。 int lastIndexOf(Object obj)–其工作原理与indexOf()方法的相反。它返回指定对象“obj”的最后一次出现,如果列表中没有此类对象,则返回值“1”。因此,它也可以用作Set接口的contains()方法。
6. remove()–通过将元素指定为方法的参数,从集合中移除元素。 ListIterator ListIterator()–它返回列表起始索引的迭代器。
7. size()–计算集合中对象或元素的数量。 ListIterator ListIterator(int index)–它有助于从指定的“index”开始遍历调用列表。
8. objectremove(int index)–它删除指定“index”处的对象,并返回已删除的元素作为结果。它还减少结果列表索引以反映删除。
9 对象集(int index,Object obj)–将对象“obj”分配给指定“index”处的调用列表。
10 List subList(int start,int end)–在调用该方法的列表中包含从索引“start”到索引“end”的对象。
  • **顺序维护:

集合从不保持元素**到集合中的顺序,而列表则保持该顺序。LinkedHashSet有一个例外,因为它维护**顺序,但另一个集合(如HashSet和TreeSet)在存储元素之前对元素进行排序。下面举例说明。

设置输入:猫,娃娃,苹果。

储存为:苹果,猫,娃娃。

 

列表输入:猫,娃娃,苹果。

储存为:猫,娃娃,苹果。

  • 存在重复项:

集合不允许重复,而列表允许重复。如果必须将重复值添加到列表中,则该值将被覆盖。查看样本中的集合和列表重复项。

设置输入:10,20,20,50。

存储为:10、20、50。

 

列表输入:10,20,20,50。

存储为:10、20、20、50。

  • 空值:

一个集合只能有一个空值,而一个列表可以有多个空值,并且不限于任何数字。

设置输入:空,空,人,狗,飞机。

存储为:空,狗,人,飞机。

 

列表输入:null,null,Man,Dog,Plane。

存储为:空,空,人,狗,飞机。

  • 迭代器和列表迭代器的使用:

迭代器方法可以很好地处理Set和List,而ListIterator方法只能处理List。ListIterator可用于向前或向后遍历列表。

  • 遗留类的存在:

集合没有遗留类,而列表接口有一个称为“vector”的遗留类。向量使用列表接口,因此保持**顺序。由于同步的努力,向量在添加、删除和更新方面的性能稍慢。

  • 实施:

集合实现中很少有HashSet、LinkedHashSet和TreeSet。List的实现很少包括ArrayList和LinkedList。

何时使用集合列表(&L)?

Set和List的用法完全取决于**顺序的维护要求。正如我们了解到的,集合从不保持**的顺序,当顺序不太重要时,可以使用它。同样,在需要保持**顺序时,也可以使用列表。

表格形式的差异:

序号 差异 列表
1. **顺序 它保持**顺序。第一个**的值保留在第一位,依此类推,而不考虑其值。 它从不保持**顺序。
2. 方法 它使用add()、clear()、contains()、isEmpty()、remove()和size()等方法。 它使用add()、addAll()、get()、lastIndexOf()、ListIterator()和remove()、set()以及subList()等方法。
3. 复制品 它从不允许重复,在这种情况下,值会被覆盖。 它允许复制。
4. 空值 它最多只能有一个空值。 它可以有任意数量的空值。
5. 迭代器()和listIterator()的使用 它只使用iterator()方法。 它同时使用iterator()和listIterator()。
6. 遗留类的存在 没有遗留类。 它有一个称为向量的遗留类。
7. 启动位置 集合接口实现中很少有HashSet、LinkedHashSet和Tree Set。 列表接口实现中很少有LinkedList和ArrayList。

希望,我们已经包括了布景和单子之间所有可能的差异。如果您觉得我们遗漏了什么,请务必告诉我们。

  • 发表于 2021-06-25 00:15
  • 阅读 ( 311 )
  • 分类:IT

你可能感兴趣的文章

列表(list)和设置(set)的区别

...合不允许重复。 目录 1. 概述和主要区别 2. 什么是列表 3.设置了什么 4. 列表与集合的相似性 5. 并列比较-以表格形式列出与设置 6. 摘要 什么是列表(list)? 列表是扩展集合接口的接口。集合接口中有许多方法。add方法有助于添加...

  • 发布于 2020-10-19 09:09
  • 阅读 ( 209 )

内存缓存(memcached)和雷迪斯(redis)的区别

...令是set、add、append等。“set”命令用于为新的或现有的键设置一个新值。“add”命令用于为新键设置值。“replace”命令用于替换现有键的值。“append”命令可以向现有键添加一些数据。“get”、“delete”是检索命令。“get”命...

  • 发布于 2020-10-19 23:25
  • 阅读 ( 158 )

机顶盒(set top box)和dth公司(dth)的区别

...用户在另一端解码和观看。 什么是机顶盒(a set-top box)? 设置盒是一种接收数字信号、解码并在电视显示器上显示的设备。接收到的信号可以是电视信号或因特网数据信号。信号可以通过电缆或电话连接接收。过去,机顶盒主要...

  • 发布于 2020-10-28 00:02
  • 阅读 ( 375 )

如何查看Windows10上次安装主要更新的时间

...有几种方法可以检查最新的主要更新安装日期。 如何在设置中检查主要更新安装日期 首先,打开“开始”菜单,单击齿轮图标打开“设置”。您也可以按键盘上的Windows+i。 在“设置”窗口中,单击“系统” 在“系统”窗格...

  • 发布于 2021-03-31 22:47
  • 阅读 ( 144 )

如何使推式通话

...到各种不需要的背景噪音。请记住,您可以使用按键通话设置将麦克风静音,直到您准备好讲话。 一键通设置以前位于Steam设置菜单下,但它在朋友列表设置菜单中找到了一个新家。要访问此菜单,请在您的计算机上启动Steam应...

  • 发布于 2021-04-02 11:15
  • 阅读 ( 122 )

如何在gmail中轻松地发送电子邮件

...hing! Sincerely, Mailing List Blues 别对自己太苛刻,你可以在“设置”菜单中查看所有的“长寿日”,但你什么也找不到。Gmail确实有一个邮件列表功能,但他们肯定不会宣传它,而且它甚至不是真正的Gmail系统的一部分。 无论你是否...

  • 发布于 2021-04-08 20:21
  • 阅读 ( 208 )

如何在xbmc上重现频道冲浪体验

...***-&amp;gt;Enabled add-***-&amp;gt;Program add-***(系统-&amp;gt;设置-&amp;gt;加载项-&amp;gt;程序加载项)来确认加载项的状态,您应该在其中看到PseudoTV live的条目。如果单击条目,您将看到该条目的附加信息面板。 为了让PsuedoTV Live...

  • 发布于 2021-04-11 07:15
  • 阅读 ( 181 )

set listener创建艺术家最近表演的spotify播放列表

...。这是一个有趣和简单的方式来重温现场表演的魔术位。设置侦听器

  • 发布于 2021-05-21 03:12
  • 阅读 ( 75 )

在五分钟内推出你自己的完美组织的可打印在线简历

...把一切都准备好了,看上面的视频或者阅读下面的步骤来设置一切。第一步:输入你的信息要设置恢复脚本,需要在config文件(名为config.php)中输入一组信息。在下载的脚本文件夹中找到它,然后在任何纯文本编辑器中打开它...

  • 发布于 2021-05-25 17:13
  • 阅读 ( 186 )

在OSX中弹出dmg时自动删除它

...代码复制到框中:告诉应用程序“Finder”将selection\u list设置为selection if(count selection\u list)&amp;lt;1然后显示对话框¬ "请选择一个从磁盘映像装入的卷¬ "找不到带有图标“停止”的“选择”¬ 按钮[“确定”]默认按钮1返回结束...

  • 发布于 2021-05-25 23:31
  • 阅读 ( 116 )
lgqiwgo06764
lgqiwgo06764

0 篇文章

相关推荐