首页 > Java > java教程 > 如何在 Java 中根据另一个列表的顺序对一个列表进行排序?

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

Barbara Streisand
发布: 2024-11-02 15:46:29
原创
956 人浏览过

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

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

在 Java 中,可以根据另一个列表的顺序对一个列表进行排序。当您在一个列表 (listB) 中有特定的项目序列并且您想要重新排列第二个列表 (listA) 以匹配该顺序时,这可能很有用。

实现此目的的一种方法是使用具有自定义比较器的 Collections.sort() 方法如下:

<code class="java">Collections.sort(listToSort, new Comparator<T>() {
    @Override
    public int compare(T o1, T o2) {
        return listWithOrder.indexOf(o1) - listWithOrder.indexOf(o2);
    }
});</code>
登录后复制

这里,listToSort 表示未排序的列表,listWithOrder 包含所需的顺序。此比较器根据 listWithOrder 中元素的顺序对 listToSort 进行排序。

对于 Java 8 及更高版本,您可以使用 lambda 和 ComparisonInt() 方法来简化代码:

<code class="java">listToSort.sort(Comparator.comparingInt(listWithOrder::indexOf));</code>
登录后复制

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

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板