java如何按相同顺序对不同类型数据的2个ArrayList进行排序?
假设我有一个String的ArrayList和一个int的ArrayList
My ArrayList的字符串包含:
index : value
-----------------
0 : "Paul"
1 : "Peter"
2 : "Maria"
我的整数数组列表包含:
index : value
-----------------
0 : 2
1 : 0
2 : 1
假设我使用
Collections.sort(myArrayOfint);
结果应该是索引0处的0,索引1处的1,索引2处的2,对吗
我想做的是根据int数组的新顺序对字符串数组进行排序,例如“Paul”将指向索引1,“Peter”指向索引2,“Maria”指向索引0。顺序将与我的int数组交换相同
我该怎么做,可能吗
# 1 楼答案
您不应该对
myArrayOfint
进行排序:它定义了排序字符串数组所依据的排列。最简单的方法是使用临时数组,如下所示:这是有效的,因为
这个问题也可以在没有临时数组的情况下解决,但算法更复杂
# 2 楼答案
您可以创建具有属性的类,并使用基于不同属性进行比较的不同
Comparator
:# 3 楼答案
我的感觉是,您有一个int数组和一个字符串数组,但是您应该有一个
Person
对象的单个数组,一个Person
具有类型为int
的字段ID
,以及类型为String
的字段name
。按ID对您的人员进行排序,姓名和ID当然会按相同的顺序进行排序使用对象。这就是OOP的全部内容