Set概述

特点:无序、无下标、元素不可重复。 //和Collection一模一样

方法: 只有Collection的方法。

增、删、遍历、判断与collection一致。

Set实现类

1,HashSet(重点)

1,存储结构:哈希表(数组+链表+红黑树)(JDK1.8之后,之前没有红黑树)

2,存储过程简述

  • 基于hashCode计算元素存放位置。
  • 当元素的hashCode相同时,判断equals(),如果为True,拒绝存入。

3,遍历操作

for循环遍历+增加for循环遍历+迭代器遍历

2,TreeSet

1,特点

  • 基于排列顺序实现元素不重复。
  • 实现SortedSet接口,对集合元素自动排序
  • 元素对象的类型必须实现Comparable接口,指定排序规则。
  • 通过CompareTo方法确定是否为重复元素。

2,存储结构:红黑树

3,小应用-Comparator 实现定制比较器

// 重写compare
@override
public int compare(Person o1, Person o2){
  int n1 = o1.getAge()-o2.getAge();
  int n2 = o1.getName().comareTo(o2.getName());
  return n1 == 0 ? n2 : n1;
}