java中map如何按double排序

发布网友

我来回答

4个回答

热心网友

java中map按照double大小进行排序,可以使用collentions接口的sort方法进行比较,实例如下:

Collections.sort(dataMap, new Comparator<Map<String, Object>>() {

@Override
public int compare(Map<String, Object> lhs, Map<String, Object> rhs) {

Double d5 = ((Double) rhs.get(OpenPrice));
Double d6 = (Double) lhs.get(OpenPrice);
       if (d5 != null && d6 != null) {
                     return d5.compareTo(d6);
} else {
return flag;
}
// return d1.compareTo(d2);
}

根据返回的int类型,可设置按照从大到小还是从小到大排序

热心网友

你好,排序的接口是Comparator接口
compare是这个接口的方法
本方法有两个参数,返回int整数
根据第一个参数小于、等于或大于第二个参数分别返回负整数、零或正整数。

如果你还想了解更多,需要理解 “冒泡算法”

不明白 q
379988628

热心网友

没看懂你想要描述的问题.
map<key,value> 你说的double 是 key 还是 value?
map 是键值对的. 无序的集合. 不能根据key或value进行排序.
想要排序得循环遍历 map 后 通过 list 有序集合 进行排序.

或者可以这样 你自定义一个对象 例如
class A{
public double number;

public String value;
}
List<A> 元素根据 double 大小依次放进去. 这样利用List排序.

热心网友

java.util.Collections
static <T> void sort(List<T> list, Comparator<? super T> c)

java.util.Comparator
int compare(T o1, T o2)

你需要实现Comparator,作为比较器。
import java.util.Comparator;
class MyComparator implements Comparator{
public int compare(double o1, double o2){
if(o1>o2) return 1;
else if(o1==o2) return 0;
else return -1;
}
}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com