对于我目前正在开发的 Java 应用程序,我正在使用一个 ID 系统,每个 ID 都是一个唯一的字符串。我有两个数组列表,一个是 ArrayList<String>
其中仅包含正确顺序的 ID,另一个是对象数组列表,所有对象均具有 .ID 字段。对对象数组列表进行排序以使其 ID 与字符串 ID 数组列表的顺序相同的最佳方法是什么?
最佳答案
我会使用 ID 作为键将所有对象放入 HashMap 中,然后运行第二个 ID 列表并使用 ID 和映射创建新的对象列表。应该有一个大约 2n -> n 的复杂度,而不是资源友好的。
编辑:明确我的意思
List<String> idList;
List<ObjectWithID> objectList;
Map<String, ObjectWithID> helperMap=new HashMap<>();
//first O(n)
for (ObjectWithID o:objectList) {
helperMap.put(o.ID, o);
}
int i=0;
//second O(n)
for (String id:idList) {
objectList.set(i,helperMap.get(id));
i++;
}
假设 objectList 和 idList 分别具有相同的大小和相同的 ids/object.IDs。
关于java - 如何最好地使用一个 ArrayList 的顺序在 Java 中对另一个 ArrayList 进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9421877/