我一直在练习 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());
Run Code Online (Sandbox Code Playgroud)
输出:
[{name=dave, age=27, hobby=guitar}, {name=adam, age=15, hobby=sports}]
Run Code Online (Sandbox Code Playgroud)
无论如何,我可以使用散列图中的任何键对这个数组列表进行排序或反转,例如按名称值排序或按年龄值排序?
“……我是否可以通过使用哈希图中的任何键来排序或反转这个数组列表,例如按名称值排序或按年龄值排序?……”
要反转List,请使用Collection#reverse方法。
Collections.reverse(list);
Run Code Online (Sandbox Code Playgroud)
对于排序,请使用List#sort和Comparator#comparing方法。
list.sort(Comparator.comparing(x -> x.get("name")));
Run Code Online (Sandbox Code Playgroud)
list.sort(Comparator.comparing(x -> x.get("age")));
Run Code Online (Sandbox Code Playgroud)
每个例程的输出。
[{name=adam, age=15, hobby=sports}, {name=dave, age=27, hobby=guitar}]
Run Code Online (Sandbox Code Playgroud)