java - 如何对从 HashMap 获得的字符串的 ArrayList 进行优先排序?

标签 java performance

我有一个 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/

相关文章:

java - 我如何在 java 中打开 .pdf 文件

.net - .Net 中没有 'payload' 值的字典

Java 平台游戏性能

c# - 如何提高有关 Trim() 的 Linq 查询性能

java - Android 应用程序中的 If/Else 验证?

java - 尝试从 bash 运行BehaviorSpace 实验时出错

java - 错误膨胀类 android.widget.GridLayout 应用程序崩溃

java - "+"用于String拼接是否影响效率?

php - 记录 mysql 结果和计时

java - 有没有办法从 JVM 内部判断某个特定方法是否已经过 JIT 编译?