1. Set:集合中的元素不按照某一指定的方法排序,并且不存在重复的独享。Set 的一些实现类能对集合中的元素按指定的方式排序。
     2. List:集合中的元素按照索引位置排序,可以有重复对象,支持按照元素在集合中的索引来查询元素。
     3. Map:集合中的每一个元素包含了一对键对象和值对象,集合中没有重复的键对象,而值对象可以重复。




对Java中3种集合类详细说明如下:
(1)Set接口
Set接口继承了 Collection 接口。它不允许集合中出现有重复项。Set接口中没有引入新方法,因此说 Set 就是一个Collection ,只是二者的行为不同而已。Set中不能出现重复值,而 Collection 中可以。Set 的存储顺序不是有序的,因此不能使用索引访问其元素。添加到 Set 中的元素必须定义 equals 方法,以提供算法来判断新元素是否与已存在的某元素相等,从而保证其中元素的唯一性。
Java 中为 Set接口提供了3个基本的实现类:分别是 HashSet、 TreeSet和 LinkHashSet
①. HashSet 类
HashSet 是Set 接口的实现类,它使用三列表进行存储,具有很好的存取性能。HashSet底层是使用HashMap 实现的,它封装了一个 HashMap 对象来存储集合中的所有元素。
HashSet 提供的方法大部分都是通过呢调用HashMap 方法实现的,因此 HashSet 在实现本质上与 HashMap 是相同的。
当向HashSet 中存入一个新对象时,首先会调用该对象的HashCode 方法以获取哈希码,然后很具哈希码来确定该对象在 HashSet 中存放的位置。
如果用户自定义类使用 HashSet 来添加独享,则一定要覆盖该类的 equals() 方法和 hashCode() 方法。 其规则为: 如果两个对象通过 equals() 方法比较厚返回值为 true,则他们的哈希码 hashCode 也相等。
②. TreeSet类
TreeSet 实现了 SortedSet 接口,他是一个有序的集合,添加到 TreeSet 中的元素是按照某种顺序来存储的,因此读取时间可以从集合中有序地读取出来。
为保证 TreeSet 中元素的有序性,其中每个对象元素必须要实现 Comparable 接口或者将对象元素添加到 TreeSet 时为其提供 Comparable 比较器对象。
TreeSet 中的元素只能通过迭代器方法进行获取。
③. LinkedHashSet 类
LinTreeHashSet 是 HashSet 的子类。它内部使用了散列表来加快查询速度,同时使用链表结构来维护元素插入集合的次序。
在LinkedHashSet 中,可以按照元素的插入次序来访问各个元素。