【发布时间】:2018-04-12 08:56:03
【问题描述】:
如何按多个属性对 HashMap 条目进行排序。
假设我有一个带有键字符串和值作为对象的映射。
Map<String, UserMetrics> map = new HashMap<>
map.put("user10",new UserMetrics(1,100,111));
map.put("user3",new UserMetrics(10,330,444));
map.put("user11",new UserMetrics(333,100,555));
map.put("user1",new UserMetrics(1,111,433));
public static class UsageMetrics implements Serializable {
private long param1;
private long param2;
private long param3;....
}
我想先按“param1”对用户进行排序,然后按“param2”排序
预期结果:
user10, UserMetrics(1,100,111)
user1, UserMetrics(1,111,433))
user3, UserMetrics(10,330,444));
user11, UserMetrics(333,100,555))
【问题讨论】:
-
尝试使用
Comparator.comparing和thenComparing函数 -
@HadiJ Better
comparingLong和thenComparingLong。