Set<E>接口和List<E>接口的根本区别是什么?
当前回答
Set:
不能有重复值 排序取决于实现。默认情况下,它不是有序的 不能通过索引进行访问
列表:
可以有重复的值 默认订购 可以通过索引访问吗
其他回答
List和Set都是接口。它们都扩展了Collection接口。set和list之间的重要区别是:
复制对象
List和Set之间的主要区别是List允许重复,而Set不允许重复。
订单
List是一个有序的集合,它维护插入顺序,这意味着在显示列表内容时,它将以它们插入到列表中的相同顺序显示元素。
Set是一个无序的集合,它不维护任何顺序。很少有维护顺序的Set实现,例如LinkedHashSet(它按照插入顺序维护元素)。
空元素
List允许任意数量的空元素。Set最多只能有一个null元素。
Set不能包含重复的元素,而List可以。List(在Java中)也意味着顺序。
当我们讨论Java接口时,为什么不看看Javadoc呢?!
List是一个有序的集合(序列),通常允许 重复的 集合是不包含重复元素的集合,迭代 顺序可以由实现来保证
这里没有提到关于集合的缺乏顺序:这取决于实现。
List是一个有序的元素序列,而Set是一个无序的元素列表(谢谢你,Quinn Taylor)。
(<和>:
有序集合(也称为 序列)。本界面的用户 有精确的控制在哪里 列出插入的每个元素。的 用户可以通过它们来访问元素 整数索引(在列表中的位置), 并搜索列表中的元素。
Set <和>:
不包含 重复的元素。更正式, 集合不包含元素e1对 e2使得e1。等于(e2) at 最多一个空元素。正如所暗示的 的名称,此接口模拟 数学集合抽象。
集合是由不同对象组成的无序组——不允许有重复的对象。它通常使用被插入对象的哈希代码来实现。(特定的实现可能会添加排序,但Set接口本身没有。)
列表是一组有序的对象,其中可能包含重复项。它可以用数组列表、链表等来实现。
推荐文章
- 在Java中使用正则表达式提取值
- 如何允许所有网络连接类型HTTP和HTTPS在Android(9)馅饼?
- 如何克隆或复制一个列表在kotlin
- Intellij IDEA Java类在保存时不能自动编译
- 何时使用Mockito.verify()?
- 在maven中安装mvn到底做什么
- 不可变与不可修改的集合
- 如何在JSON中使用杰克逊更改字段名
- GSON -日期格式
- 如何从线程捕获异常
- 无法解析主机"<URL here>"没有与主机名关联的地址
- 列表是线程安全的吗?
- 如何在Java中打印二叉树图?
- String.format()在Java中格式化双重格式
- com.jcraft.jsch.JSchException: UnknownHostKey