java - 在 Java 中,如何根据另一个列表对一个列表进行排序?

标签 java list sorting arraylist

我见过其他几个与此类似的问题,但我还没有真正找到任何可以解决我的问题的问题。

我的用例是这样的:用户最初有一个项目列表(listA)。他们重新排序项目并希望保留该订单(listB),但是,由于限制,我无法在后端保留顺序,因此我必须在检索后对 listA 进行排序。

所以基本上,我有 2 个 ArrayList(listA 和 listB)。一个具有列表的特定顺序(listB),另一个具有项目列表(listA)。我想根据 listB 对 listA 进行排序。

最佳答案

使用 Java 8:

Collections.sort(listToSort, 
    Comparator.comparing(item -> listWithOrder.indexOf(item)));

或更好:

listToSort.sort(Comparator.comparingInt(listWithOrder::indexOf));

关于java - 在 Java 中,如何根据另一个列表对一个列表进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18129807/

相关文章:

python - CLRS 中伪代码的问题

java - 如何将 Map<T,List<L>> 映射中的值添加到 List<L>?

python - 将列表解析为变量和子列表 - pythonic 方式

C程序查询彩票号码: why some tests fail?

python - 如何使用 sorted() 同时对两列进行排序

C# 将列表项复制到对象数组

java - Gradle:使用依赖库创建不可执行的jar和可执行shell脚本,作为程序包分发

java - 为什么 Java 日期 API(java.util.Date、.Calendar)如此困惑?

java - 类似于 NetBeans 的不必要代码检测器

c# - 如何使用 LINQ 获取包含在多个列表中的元素列表?