对 Hashmap Arraylist 进行排序或反转

问题描述 投票:0回答:1

嗨,最近我一直在练习 Java 代码挑战。

这是我的代码

    LinkedHashMap<String, String> user = new LinkedHashMap<String, String>();
    LinkedHashMap<String, String> user1 = new LinkedHashMap<String, String>();
    ArrayList<HashMap<String , String>> list = new ArrayList<HashMap<String , String>>();
    
    user.put("name", "dave");
    user.put("age", "27");
    user.put("hobby", "guitar");
    
    user1.put("name", "adam");
    user1.put("age", "15");
    user1.put("hobby", "sports");
    
    list.add(user);
    list.add(user1);
    
    System.out.println(list.toString());

输出: [{名字=戴夫,年龄=27,爱好=吉他},{名字=亚当,年龄=15,爱好=运动}]

无论如何,我可以使用哈希图中的任何键对这个数组列表进行排序或反转,例如按名称值排序或按年龄值排序?

提前致谢

java sorting arraylist data-structures hashmap
1个回答
0
投票

“...我是否可以使用哈希图中的任何键对这个数组列表进行排序或反转,例如按名称值排序或按年龄值排序?...”

您可以使用 List#sortComparator#comparing 方法。

list.sort(Comparator.comparing(x -> x.get("name")));
list.sort(Comparator.comparing(x -> x.get("age")));

两个例程的输出。

[{name=adam, age=15, hobby=sports}, {name=dave, age=27, hobby=guitar}]
© www.soinside.com 2019 - 2024. All rights reserved.