19集合2
1. Set: 无序去重集合
无放入顺序,去重集合
- boolean add(E); 元素有可能添加不进去
2 HashSet: hashcode散列集合
用hash算法和equals方法判断 两个元素是否相同。
this.hash == key.hash && ( this.equasl(key) )
3 TreeSet: 排序树集合: 有(排序)序集合
-
去重,有排序集合。
-
Comparable自然排序接口: 覆盖compareTo(T t) 方法;( this - t)就是升序,反之降序;
- 很多类都有compareTo(); 正数是大于, 0是等于, 负数是小于。
-
TreeSet底层是TreeMap.
do {
parent = t;
cmp = k.compareTo(t.key);
if (cmp < 0)
t = t.left;
else if (cmp > 0)
t = t.right;
else
return t.setValue(value);
} while (t != null);
Set: 去重和 无序(放入的顺序)
HashSet: equals和hashcode;
TreeSet: Comparable接口的compareTo方法; 有(排序)序
4. 比较器相关:
List的
- sort(Comparetor)方法 : JDK8
- Comparetor里面的compare(T o1, T o2) {} ;
o1 - o2
升序,o2 - o1
降序
- Comparetor里面的compare(T o1, T o2) {} ;
for(int i = destLow, p = low, q = mid; i < destHigh; i++) {
if (q >= high || p < mid && c.compare(src[p], src[q]) <= 0)
dest[i] = src[p++];
else
dest[i] = src[q++];
}
- Collections.sort(list); list的元素的 自然排序(Comparable)
- Collections.sort(list, Comparetor); 用比较器进行排序
元素的 自然排序(Comparable)
- Collections.sort(list, Comparetor); 用比较器进行排序