先看看API文档的解释
1)list:
public interface List<E>extends Collection<E>
有序的
collection(也称为序列)。此接口的用户可以对列表中每个元素的插入位置进行精确地控制。用户可以根据元素的整数 索引 (在列表中的位置)访问元素,并搜索列表中的元素。
2)set:
public interface Set<E>extends Collection<E>
一个不包含重复元素的 collection。更确切地讲,set 不包含满足 e1.equals(e2) 的元素对 e1 和 e2,并且最多包含一个 null 元素。正如其名称所暗示的,此接口模仿了数学上的 set 抽象。
3)map:
public interface Map<K,V>
将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。
分析相同和区别
这三个都是接口;
它们都在java.util包中;
list中的元素是有序的,可重复的;
set中的元素是无序的,不可重复的;
map中每个键只能映射到一个值;
list和set都继承了Collection接口;
map没有继承任何;
set中最多包含一个null元素;
总结
list、set、map、这三者的最大区别点在于:
list中的元素是有序,可重复的;
set中的元素是无序,不可重复的;
map中一个键可以映射到多个值,但键不可以重复;