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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。