gpt4 book ai didi

java - 按另一个数组对对象的 Arraylist 进行排序

转载 作者:行者123 更新时间:2023-11-30 03:08:08 25 4
gpt4 key购买 nike

ArrayList<CustomObject> 中的对象array A未排序:

ID: [6, 3, 2, 5, 4, 1]

从我收到的程序的另一部分array B 。需要对 array A 中的对象进行排序按属性 int ID妨碍array B已排序:

[3, 6, 4, 5, 1, 2]

所以array A最终应该排序如下:

[3, 6, 4, 5, 1, 2]

所以 array A 中的对象按 ID 排序,与 array B 中的项目完全相同是。

实现它的最佳方法是什么?

最佳答案

试试这个。

    List<CustomObject> a = Arrays.asList(
new CustomObject(6),
new CustomObject(3),
new CustomObject(2),
new CustomObject(5),
new CustomObject(4),
new CustomObject(1)
);
System.out.println(a);
int[] b = {4, 6, 5, 3, 1, 2};
Map<Integer, Integer> map = new HashMap<>();
for (int i = 0; i < b.length; ++i)
map.put(b[i], i);
// for Java8
// Collections.sort(a, (l, r) -> map.get(l.id) - map.get(r.id));
Collections.sort(a, new Comparator<CustomObject>() {
@Override
public int compare(CustomObject l, CustomObject r) {
return map.get(l.id) - map.get(r.id);
}
});
System.out.println(a);

关于java - 按另一个数组对对象的 Arraylist 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34247723/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com