如何对HashMap中的元素进行排序

 我来答
雪飞潇潇
2018-12-07 · TA获得超过6275个赞
知道大有可为答主
回答量:1968
采纳率:91%
帮助的人:869万
展开全部

HashMap是无序的集合,对里面的元素进行排序,需要借助其他有序的集合

  • 传统的思路:   把每一个HashMap的键值对作为一个Entry 存入到ArrayList<Entry>里.  然后对ArrayList进行排序.

  • Java8新思路: 利用流对集合进行处理,非常强大, 如果配合上Lambda表达式, 就是简洁且强大.

参考代码

import java.util.HashMap;
//java8 流处理
public class Demo1 {
public static void main(String[] args) {
HashMap<String, Integer> map = new HashMap<>();
map.put("lucy", 76);
map.put("tom", 92);
map.put("jack", 86);
// 按照 Key (名字)进行排序 ,并打印
map.entrySet().stream().sorted((e1, e2) -> e1.getKey().compareTo(e2.getKey())).forEach(System.out::println);
System.out.println("-------分割线----------");
// 按照value(分数) 进行排序,并打印
map.entrySet().stream().sorted((e1, e2) -> e1.getValue().compareTo(e2.getValue())).forEach(System.out::println);

}
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式