java HashMap按值进行排序

本文介绍了一种使用Java对HashMap按值进行排序的方法。通过创建HashMap并将元素添加到其中,然后使用Collections.sort方法配合自定义的Comparator实现排序。最终将排序后的元素放入LinkedHashMap以保持插入顺序。

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

java HasnMap 按值进行排序方法

实现代码如下:

import java.util.ArrayList;

import java.util.Collections;

import java.util.Comparator;

import java.util.HashMap;

import java.util.Iterator;

import java.util.LinkedHashMap;

import java.util.List;

import java.util.Map;


public class AddAll {

     public static void main(String [] args) {

       Map<String,Integer> map=new HashMap<String,Integer>();

       for(int i=0;i<5;i++) {

       map.put(String.valueOf(i),i);

       }

       List<Map.Entry<String,Integer>> list=new ArrayList<Map.Entry<String,Integer>>();

       CompareValue cop=new CompareValue();

       Map<String,Integer> lmap=new LinkedHashMap<String,Integer>();

       list.addAll(map.entrySet());

       Collections.sort(list,cop);

       Iterator<Map.Entry<String, Integer>> it=list.iterator();

       while(it.hasNext()) {

       String key=it.next().getKey();

       lmap.put(key,map.get(key));

       }

       System.out.print(lmap);

     }


}

class CompareValue implements Comparator<Map.Entry<String,Integer>>{

public int compare(Map.Entry<String,Integer> u,Map.Entry<String,Integer> m) {

return m.getValue()-u.getValue();

}

}


方法解析:

1:首先生成一个HashMap,实际情况下是从数据库取得HashMap。

2:产生一个Map.Entry<K,M>类型的List,Entry<K,M>是Map声明的一个内部范性接口。

3:对list进行赋值,其值为map.entrySet()->有getKey()和getValue()方法获取键/值。

4:使用Collections提供的sort方法按照对Comparator的compare方法重新实现后的方法进行排序;

5:用list生成一个Iterator迭代器,进行迭代,取得key值并写入LinkedHashMap中(按照插入顺序进行排序)



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值