List、Set、Map的区别和关系
扩展链接.
List、Set是实现了Collection接口的子接口;而Map是另一个集合接口;(Collection接口和Map接口是平级的)
三者之间的区别如下:
- 元素重复性:
① List允许有重复的元素。任何数量的重复元素都可以在不影响现有重复元素的值及其索引的情况下插入到List集合中;
② Set集合不允许元素重复。Set以及所有实现了Set接口的类都不允许重复值的插入,若多次插入同一个元素时,在该集合中只显示一个;
③ Map以键值对的形式对元素进行存储。Map不允许有重复键,但允许有不同键对应的重复的值; - 元素的有序性:
① List及其所有实现类保持了每个元素的插入顺序;
② Set中的元素都是无序的;但是某些Set的实现类以某种殊形式对其中的元素进行排序,如: LinkedHashSet按照元素的插入顺序进行排序;
③ Map跟Set一样对元素进行无序存储,但其某些实现类对元素进行了排序。如:TreeMap根据键对其中的元素进行升序排序; - 元素是否为空值:
① List允许任意数量的空值;
② Set最多允许一个空值的出现;[ 当向Set集