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


当前回答

集合是由不同对象组成的无序组——不允许有重复的对象。它通常使用被插入对象的哈希代码来实现。(特定的实现可能会添加排序,但Set接口本身没有。)

列表是一组有序的对象,其中可能包含重复项。它可以用数组列表、链表等来实现。

其他回答

1.List允许重复值,set不允许重复值

2.List维护您在列表中插入元素的顺序 Set不能维持秩序。 3.List是一个有序的元素序列,而Set是一个无序的元素列表。

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

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

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

元素的有序列表(是否唯一) 遵循Java的名为List的接口 可以通过索引访问吗

实现使用

LinkedList ArrayList

独特元素列表: 遵循Java名为Set的接口 不能通过索引访问

实现使用

HashSet(无序) LinkedHashSet(命令) 树集(按自然顺序或按提供的比较器排序)

接口Set和List都符合Java的名为Collection的接口

List Set
Duplicates Yes No
Order Ordered Depends on implementation
Position Access Yes No