java中TreeMap排序的示例代码
1.定义TreeMap的排序方法
使用Comparator对象作为参数
需要注意的是:排序方法是针对键的,而不是值的。如果想针对值,需要更麻烦的一些方法(重写一些方法)
TreeMapres=newTreeMap (newComparator (){ @Override publicintcompare(Screenscreen1,Screent1){//定义TreeMap的排序方法 returnscreen1.compareTo(t1);//TreeMap的排序方法是:调用screen的比较方法 } });
2.定义里面的对象的比较方法
继承Comparable接口
publicclassScreenimplementsComparable{ privatedoublesize,price; ... @Override publicintcompareTo(Objects){//定义比较方法 Screenscreen=(Screen)s; returnthis.price>screen.getPrice()?-1:1;//返回负整数和正整数 } }
3.所有代码
按照Screen的价钱排序
Screen.java
importjava.util.*; importjava.lang.Integer; publicclassScreenimplementsComparable{ privatedoublesize,price; publicScreen(){} publicvoidsetSize(doublesize){ this.size=size; } publicvoidsetPrice(doubleprice){ this.price=price; } publicdoublegetSize(){returnthis.size;} publicdoublegetPrice(){returnthis.price;} publicvoidshow(){ System.out.println("sizeis:"+this.size+";priceis:"+this.price); } @Override publicintcompareTo(Objects){//定义比较方法 Screenscreen=(Screen)s; returnthis.price>screen.getPrice()?-1:1;//返回负整数和正整数 } }
TestScreen.java
importjava.util.Comparator; importjava.util.Scanner; importjava.util.TreeMap; importproblem2.Screen; publicclassTestScreen{ finalstaticintMAX_NUM=8; publicstaticvoidmain(String[]args){ TreeMapres=newTreeMap (newComparator (){ @Override publicintcompare(Screenscreen1,Screent1){//定义TreeMap的排序方法 returnscreen1.compareTo(t1);//TreeMap的排序方法是:调用screen的比较方法 } }); doubleprice,size; Scannerscan=newScanner(System.in); for(inti=0;i 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。