1. List(列表)
- 特点:List是一种有序的集合,元素按插入的顺序排列。每个元素都有一个索引,可以通过索引来访问元素。
- 允许重复:List允许存储重复的元素。这意味着你可以在List中存放相同的值多次。
- 常用实现类:ArrayList和LinkedList是List接口的常用实现类。
举个例子:想象你有一个班级的学生名单,你可以按顺序记录每个学生的名字,并且允许同名的学生重复出现。
2. Set(集合)
- 特点:Set是一种无序的集合,元素没有特定的顺序。
- 不允许重复:Set不允许存储重复的元素。如果你试图添加一个已经存在的元素,Set会自动忽略它。
- 常用实现类:HashSet、LinkedHashSet和TreeSet是Set接口的常用实现类。
举个例子:想象你有一副扑克牌,你需要记录已经抽出的牌。每张牌都是唯一的,不允许重复。
3. Map(映射)
- 特点:Map是一种键值对(key-value pair)的集合。每个元素由一个键和一个值组成,通过键来访问对应的值。
- 键不允许重复:Map中的键是唯一的,但值可以重复。如果你试图插入一个已经存在的键,新的值会替换旧的值。
- 常用实现类:HashMap、LinkedHashMap和TreeMap是Map接口的常用实现类。
举个例子:想象你有一本字典,每个单词(键)对应一个解释(值)。每个单词是唯一的,但解释可能会有相似的内容。
总结
- List:有序集合,允许重复元素。适合需要按顺序访问元素的场景。
- Set:无序集合,不允许重复元素。适合需要确保元素唯一的场景。
- Map:键值对集合,键唯一但值可以重复。适合通过键快速查找值的场景。