Set<E>和List<E>接口之间的根本区别是什么?
Set<E>
List<E>
List是元素的有序序列,而Set元素是无序的独特列表。
List
Set
List<E>:
有序集合(也称为序列)。该界面的用户可以精确控制列表中每个元素的插入位置。用户可以通过其整数索引(列表中的位置)访问元素,并在列表中搜索元素。
Set<E>:
一个不包含重复元素的集合。更正式地说,集合不包含元素对e1和e2,使得e1.equals(e2)最多包含一个空元素。顾名思义,此接口对数学集合抽象进行建模。
╔═══════════════════╦══════════════════════╦═════════════════════════════╗ ║ ║ List ║ Set ║ ╠═══════════════════╬══════════════════════╬═════════════════════════════╣ ║ Duplicates ║ YES ║ NO ║ ╠═══════════════════╬══════════════════════╬═════════════════════════════╣ ║ Order ║ ORDERED ║ DEPENDS ON IMPLEMENTATION ║ ╠═══════════════════╬══════════════════════╬═════════════════════════════╣ ║ Positional Access ║ YES ║ NO ║ ╚═══════════════════╩══════════════════════╩═════════════════════════════╝