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

新手上路,请多包涵

我已经看到了其他几个与这个问题类似的问题,但我还没有真正找到任何可以解决我的问题的方法。

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

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

原文由 Debacle 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 784
1 个回答

使用Java 8:

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

或更好:

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

原文由 Thermech 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题