利用java做排序

一、利用TreeMap做排序,代码如下:
java.util.SortedMap<Double, scala.Tuple2<String,String>> topN = new java.util.TreeMap<Double, scala.Tuple2<String,String>>();


topN.put(-0.223,new scala.Tuple2<String,String>("1","1"));
topN.put(-0.5239,new scala.Tuple2<String,String>("2","1"));
topN.put(-0.323,new scala.Tuple2<String,String>("3","1"));
topN.put(-0.423,new scala.Tuple2<String,String>("4","1"));
topN.put(-0.523,new scala.Tuple2<String,String>("5","1"));
topN.put(-0.623,new scala.Tuple2<String,String>("6","1"));

for (Map.Entry<Double, scala.Tuple2<String,String>> entry : topN.entrySet()) {
System.out.println(entry.getValue()._1);
}


结果发现,排序输出没有问题,都是从小到大输出;但是如果存在排序值相同的数据时,就会出现数据覆盖。
二、利用Collections.sort 做排序,则不会出现map中的覆盖问题,代码如下:
 List<Tuple2<Double,Tuple2<String,String>>> listA = new ArrayList<Tuple2<Double,Tuple2<String,String>>>();

listA.add(new Tuple2<Double,Tuple2<String,String>>(-0.223,new scala.Tuple2<String,String>("1","1")));
listA.add(new Tuple2<Double,Tuple2<String,String>>(-0.5239,new scala.Tuple2<String,String>("2","1")));
listA.add(new Tuple2<Double,Tuple2<String,String>>(-0.323,new scala.Tuple2<String,String>("3","1")));
listA.add(new Tuple2<Double,Tuple2<String,String>>(-0.423,new scala.Tuple2<String,String>("4","1")));
listA.add(new Tuple2<Double,Tuple2<String,String>>(-0.523,new scala.Tuple2<String,String>("5","1")));
listA.add(new Tuple2<Double,Tuple2<String,String>>(-0.623,new scala.Tuple2<String,String>("6","1")));

Collections.sort(listA, new Comparator<Tuple2<Double,Tuple2<String,String>>>() {
public int compare(Tuple2<Double,Tuple2<String,String>> arg0, Tuple2<Double,Tuple2<String,String>> arg1) {
Double d0=arg0._1;
Double d1=arg1._1;
return d0.compareTo(d1);
}
});

for (Tuple2<Double,Tuple2<String,String>> p : listA) {
System.out.println(p._2._1);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值