Collection 中无法获取指定元素,但可以遍历所有元素。-济南达内培训
2. Set 集合
Set 集合不允许包含相同的元素,Set 判断两个对象是否相同不用==运算符,而是根据equals 方法。
(1) HashSet 是Set 接口的典型实现,大多时候使用Set 集合时都使用这个实现类。
HashSet 按照Hash 算法来存储集合中的元素,因此具有很好的存储和查找功能。
HashSet 具有以下特点:
-- 不能保证元素的排列顺序。
-- HashSet 不是线程安全的。
-- 集合元素可以使用 null .
(2) LinkedHashSet 是HashSet 的子类。
LinkedHashSet 集合根据元素的hashCode 值来确定元素的存储位置。但它同时使用链表维护元素的次序,这使得元素看起来是以插入顺序保存的。
LinkedHashSet 性能插入性能略低于HashSet ,但在迭代访问Set 里全部元素时有很好的性能。
LinkedHashSet 不允许集合元素重复。
(3) TreeSet
Ⅰ。 TreeSet 是SortedSet 接口的实现类,TreeSet 可以确保集合元素处于排序状态。
默认情况下 TreeSet 要求集合中的元素必须实现Comparable 接口。
Comparable 中只有一个方法 : public int compareTo(Object o)
若返回0 代表两个元素相等; 若返回整数,则代表当前元素大; 若返回负数,则代表当前元素小。
TreeSet 用 Iterator 遍历。
Iterator it = set.iterator();
for(;it.hasNext();){
System.out.println(it.next());
}
Ⅱ。 TreeSet 支持两种排序方法:自然排序 和 定制排序。默认情况下,TreeSet 采用自然排序。
自然排序:
因为只有相同类的两个实例才会比较大小,所以向TreeSet 中添加的应该是一个类的对象。
当需要把一个对象放入到TreeSet 中,重写该对象的equals 方法时,应保证该方法与compareTo(Object obj)方法有一致的结果:如果两个对象通过equals() 方法比较返回true,则通过compareTo(Object obj) 方法比较应返回 0 .

定制排序:
传入的对象不用实现Comparable 接口,但是在创建TreeSet 时需要传入一个Comparable 的实现类。使实体类更简洁。
TreeSet set = new TreeSet(new Comparable (){ });
3. List
List 代表一个元素有序,且重复的集合,集合中的每个元素都有其对应的顺序索引。
List 允许使用重复的元素,可以通过索引来访问指定位置的集合元素。
List 默认按元素的添加顺序设置元素的索引。
List 集合里添加了一些根据索引来操作几个元素的方法。
Ⅰ。 ArrayList 和 Vector
ArrayList 和 Vector 是List 接口的两个典型实现。
区别:
1. 是一个古老的集合,通常建议使用ArrayList .
2. ArrayList 是线程不安全的,而Vector 是线程安全的。
3. 即使为保证List 集合线程安全,也不推荐使用Vector .
Arrays.asList(…) 方法返回的List 集合既不是ArrayList 实例,也不是Vector 实例。Arrays.asList(…) 返回值是一个固定长度的List 集合。
以上就是济南达内培训给大家做的内容详解,更多关于IT的学习,请继续关注济南达内培训