我有一个 ArrayList 的 ArrayList,在这些 ArrayList 中我存储字符串,我想根据存储在 HashMap 上的优先级对这些字符串进行排序。有没有一种有效的方法来简单地迭代它们来完成这个任务?
最佳答案
鉴于您有一个具有优先级的 HashMap
,您可以执行以下操作:
List<List<String>> listList = new ArrayList<>();
List<String> listOne = Arrays.asList("A", "B", "C", "D");
List<String> listTwo = Arrays.asList("D", "D", "D", "B");
listList.add(listOne);
listList.add(listTwo);
Map<String, Integer> map = new HashMap<>();
map.put("A", 1);
map.put("B", 2);
map.put("C", 1);
map.put("D", 4);
listList.forEach(list -> list.sort(Comparator.comparingInt(map::get)));
请注意,要实现此功能,您必须将 Map
中列表中的所有字符串具有优先级,否则您将收到 NullPointerException
。
关于java - 如何对从 HashMap 获得的字符串的 ArrayList 进行优先排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49277408/