Set<E>接口和List<E>接口的根本区别是什么?


当前回答

Set<E>和List<E>都用于存储E类型的元素。区别在于Set是以无序方式存储的,不允许重复值。List用于以有序的方式存储元素,并且允许重复值。

Set元素不能通过索引位置访问,而List元素可以通过索引位置访问。

其他回答

列表:

允许重复。 有序地将元素分组。(换句话说,有明确的顺序。不需要按升序排序)

Set:

不允许复制。 对元素进行无序分组。(换句话说,没有明确的顺序。它可能是也可能不是按升序排列的)

Set不能包含重复的元素,而List可以。List(在Java中)也意味着顺序。

List和Set都是接口。它们都扩展了Collection接口。set和list之间的重要区别是:

复制对象

List和Set之间的主要区别是List允许重复,而Set不允许重复。

订单

List是一个有序的集合,它维护插入顺序,这意味着在显示列表内容时,它将以它们插入到列表中的相同顺序显示元素。

Set是一个无序的集合,它不维护任何顺序。很少有维护顺序的Set实现,例如LinkedHashSet(它按照插入顺序维护元素)。

空元素

List允许任意数量的空元素。Set最多只能有一个null元素。

当我们讨论Java接口时,为什么不看看Javadoc呢?!

List是一个有序的集合(序列),通常允许 重复的 集合是不包含重复元素的集合,迭代 顺序可以由实现来保证

这里没有提到关于集合的缺乏顺序:这取决于实现。

List是项的有序分组 Set是一个无序的项目分组,不允许重复(通常)

从概念上讲,我们通常将允许重复的无序分组称为Bag,而不允许重复的无序分组称为Set。