对HashMap中的值进行排序

本文提供了一个使用Java实现的示例程序,该程序通过自定义比较器将HashMap中的元素按值进行排序,并将排序后的结果存储到TreeMap中。通过这个示例可以了解如何在Java中实现自定义排序逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

public static void main(String[] args) {

    HashMap<String, Double> map = new HashMap<String, Double>();
    ValueComparator bvc = new ValueComparator(map);
    TreeMap<String, Double> sorted_map = new TreeMap<String, Double>(bvc);

    map.put("A", 98.5);
    map.put("B", 85.0);
    map.put("C", 67.4);
    map.put("D", 67.3);

    System.out.println("unsorted map: " + map);

    sorted_map.putAll(map);

    System.out.println("results: " + sorted_map);
}

}

class ValueComparator implements Comparator {

Map<String, Double> base;

public ValueComparator(Map<String, Double> base) {
    this.base = base;
}

// Note: this comparator imposes orderings that are inconsistent with equals.
public int compare(String a, String b) {
    if (base.get(a) >= base.get(b)) {
        return -1;
    } else {
        return 1;
    } // returning 0 would merge keys
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值