java - 如何最好地使用一个 ArrayList 的顺序在 Java 中对另一个 ArrayList 进行排序?

标签 java arraylist

对于我目前正在开发的 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/

相关文章:

java - 迭代存储在 ArrayList 中的 HashMap 中的值

java - 使用 javabean 显示 arraylist 对象

java - 值未保存在字符串中

java - JsonGenerator 将 json 数据附加到文件而不覆盖

java - 变量 objectPO 可能尚未初始化

java - leetcode中保存java中的链表添加两个数字

Java检查空ArrayList作为类结构

java - Java中 float 的最大值?

java - 如何将类型传递给 java 中的泛型类?

java - 如何在java中将对象添加到ArrayList