TreeMap跟TreeSet底层原理一样,都是红黑树结构的;
由键决定性质,不重复,无索引,可排序;
可排序:对键进行排序;
注意:默认按照键的大小从小到大进行排序,也可以自己规定键的排序规则;
代码书写的两种规则:
实现Comparable接口,指定比较规则;
创建集合时传递Comparator比较器对象,指定比较规则;
import java.util.TreeMap;
public class TreeMapDemo1 {
public static void main(String[] args) {
//1.创建集合对象
TreeMap<Integer,String> tm=new TreeMap<>();
//Integer,Double默认情况下都是升序排列;
//String按照字母在ASCII码表中对应的数字升序进行排列;
//2.添加元素
tm.put(2,"小仙女");
tm.put(1,"可乐");
tm.put(3,"雪碧");
System.out.println(tm);
//{1=可乐, 2=小仙女, 3=雪碧}
//按照键的升序进行排列;
}
}
import java.util.Comparator;
import java.util.TreeMap;
public class TreeMapDemo1 {
public static void main(String[] args) {
//1.创建集合对象
TreeMap<Integer,String> tm=new TreeMap<>(new Comparator<Integer>(){
@Override
public int compare(Integer o1,Integer o2){
//o1:当前要添加的元素;
//o2:表示已经在红黑树中存在的元素;
return o2-o1;
}
});//{3=雪碧, 2=小仙女, 1=可乐}
//2.添加元素
tm.put(2,"小仙女");
tm.put(1,"可乐");
tm.put(3,"雪碧");
System.out.println(tm);
}
}