首页  >  文章  >  Java  >  如何根据另一个列表的顺序对 Java 列表进行排序?

如何根据另一个列表的顺序对 Java 列表进行排序?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-01 21:36:29710浏览

How to Sort a Java List Based on the Order of Another List?

根据另一个 Java 列表对一个 Java 列表进行排序

对列表 (listA) 中的元素重新排序时,用户可能希望在检索时保留新顺序。由于限制,可能需要在检索后根据定义所需顺序的另一个列表 (listB) 对 listA 进行排序。

要实现此排序,您可以利用 Java 的 Collections.sort 方法和自定义比较器。比较器函数应该根据 listB 中的索引来比较元素。

Java 8 解决方案

<code class="java">Collections.sort(listToSort, Comparator.comparing(item -> listWithOrder.indexOf(item)));</code>

改进的 Java 8 解决方案

<code class="java">listToSort.sort(Comparator.comparingInt(listWithOrder::indexOf));</code>

此改进的解决方案使用 ComparisonInt 代替比较,提供增强的性能。

以上是如何根据另一个列表的顺序对 Java 列表进行排序?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn