TreeMap
* 特点: 可以对元素进行排序 , 而排序分为两种方式
1. 自然排序
2. 比较器排序
那么我们到底使用的是自然排序还是比较器排序 , 取决于我们在创建TreeSet集合对象的时候所选定的构造方法
如果我们选择是无参的构造方法,那么我们使用的就是自然排序 , 如果我们选择的是接收一个Comparator参数的构造方法
那么我们使用的就是比较器排序
如果我们选择的是自然排序对元素有要求 , 要求元素必须去实现Comparable这个接口
TreeMap 保证元素唯一性依赖于compareTo 或者 compare方法的返回值是否为 0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | import java.util.Comparator; import java.util.TreeMap; import com.loaderman.bean.Student; public class Demo_TreeMap { /** * * TreeMap集合键是Student值是String的案例 */ public static void main(String[] args) { //demo1(); TreeMap<Student, String> tm = new TreeMap<>( new Comparator<Student>() { @Override public int compare(Student s1, Student s2) { int num = s1.getName().compareTo(s2.getName()); //按照姓名比较 return num == 0 ? s1.getAge() - s2.getAge() : num; } }); tm.put( new Student( "张三" , 23 ), "北京" ); tm.put( new Student( "李四" , 13 ), "上海" ); tm.put( new Student( "赵六" , 43 ), "深圳" ); tm.put( new Student( "王五" , 33 ), "广州" ); System.out.println(tm); } public static void demo1() { TreeMap<Student, String> tm = new TreeMap<>(); tm.put( new Student( "张三" , 23 ), "北京" ); tm.put( new Student( "李四" , 13 ), "上海" ); tm.put( new Student( "王五" , 33 ), "广州" ); tm.put( new Student( "赵六" , 43 ), "深圳" ); System.out.println(tm); } } |
最后,关注【码上加油站】微信公众号后,有疑惑有问题想加油的小伙伴可以码上加入社群,让我们一起码上加油吧!!!
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步