SortedSet集合详解-comparator比较器

这篇博客详细介绍了如何使用java.util.Comparator为SortedSet集合实现排序。通过创建一个独立的productComparator类来作为比较器,实现了根据产品价格进行升序排序的功能。博主指出,这种方式比让产品类直接实现Comparable接口更灵活,且避免了匿名内部类导致的重复利用困难。博客还展示了如何添加产品对象到集合并遍历排序后的结果。
/*
让SortedSet集合做到排序还有另一种方式:java.util.Comparator

单独编写一个比较器

1.单独写一个比较器比写一个类实现接口要好,可以重复利用,不需要改动product功能类
2.匿名内部类不推荐使用,因为比较器无法得到重复利用
*/
import java.util.*;


public class fuck12{

public static void main(String[] args){

//创建TreeSet集合的时候提供一个比较器
//因为比较器是接口,不能创建对象,所以要有一个实现类
SortedSet ss=new TreeSet(new productComparator());

//匿名内部类
/*SortedSet ss=new TreeSet(new Comparator()){
public int compare(Object o1,Object o2){

//强制类型转换来调用函数里price变量,再来比较
double price1=((product)o1).price;
double price1=((product)o1).price;

if(price1==price2) return 0;
if(price1<price2){
return 1;
}else(price1>price2){
return -1;
}
}

};*/

//创建对象
product p1=new product(2.3);
product p2=new product(4.3);
product p3=new product(2.4);
product p4=new product(7.3);

//添加元素
ss.add(p1);
ss.add(p2);
ss.add(p3);
ss.add(p4);

//遍历
Iterator it=ss.iterator();
while(it.hasNext()){
System.out.println(it.next());
}


}

}


class product{

double price;

product(double price){
this.price=price;
}

public String toString(){
return price+"";
}
}


//单独编写一个比较器
class productComparator implements Comparator{

public int compare(Object o1,Object o2){

//强制类型转换来调用函数里price变量,再来比较
double price1=((product)o1).price;
double price2=((product)o2).price;

if(price1==price2) {return 0;}
else if(price1<price2){
return 1;
}else{
return -1;
}
}

}
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值