Java-双列集合TreeSet/TreeMap
TreeSet/TreeMap:
1.TreeSet集合底层就是一个TreeMap
public TreeSet() {
this(new TreeMap<E,Object>());
}
2.TreeMap集合底层的数据结构:树
3.向TreeSet中添加元素,等同于向TreeMap的key中添加元素
public boolean add(E e) {
return m.put(e, PRESENT)==null;
}
4.TreeMap的key是无序不可重复的,但是它可以根据key的大小来排序,是一个可排序集合:
public V put(K key, V value) {
Entry<K,V> t = root;
Comparator<? super K> cpr = comparator;
if (cpr != null) {
do {
parent = t;
cmp = cpr.compare(key, t.key);
if (cmp < 0)
t = t.left;
else if (cmp > 0)
t = t.right;
else
return t.setValue(value);
} while (t != null);
}
public class TreeMapTest01 {
public static void main(String[] args) {
TreeSet<Integer> set = new TreeSet<>();
set.add(10);
set.add(60);
set.add(40);
set.add(20);
set.add(20);
for (Integer i : set) {
System.out.println(i);
}//10 20 40 60 可排序的集合
TreeMap<Integer,Integer> map = new TreeMap<>();
map.put(10, 1);
map.put(60, 1);
map.put(40, 1);
map.put(20, 1);
map.put(20, 2);
Set<Entry<Integer, Integer>> set1 = map.entrySet();
for (Entry<Integer, Integer> entry : set1) {
System.out.println(entry.getKey()+"="+entry.getValue());
}
/*
* 10=1 20=2 40=1 60=1 可排序集合
*/
}
}