如果我有一个按优先级/顺序排序的项目的概念性主列表:
1. dog
2. cat
3. fish
4. bunny
5. hamster
另一个列表带有值
["bunny", "dog", "fish"]
如何根据主列表对传入列表进行排序?所以,在这个例子中,我希望第二个列表的结果是
["dog", "fish", "bunny"]
排序后。
我可以手动编写一个函数来实现它,但我觉得 Java 已经有某种内置和优化的方法来做这种事情。在 Java 中完成此类列表排序的最佳方法是什么?
最佳答案
您可以做的是创建主副本并使用 List#retainAll方法来保留主控中的顺序。
示例:
// Master list
List<String> master = new ArrayList<>(Arrays.asList("dog", "cat", "fish", "bunny", "hamster"));
// list to sort with respect to master
List<String> listToSort = new ArrayList<>(Arrays.asList("bunny", "dog", "fish"));
// copy of master
List<String> masterCopy = new ArrayList<>(master);
// keep only the items in masterCopy that are in the listToSort
masterCopy.retainAll(listToSort);
System.out.println(masterCopy);
输出:
[dog, fish, bunny]
关于java - 如何根据项目的主序列列表对一小部分项目进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37799020/