根据整数数组排序字符串列表

时间:2012-08-20 19:01:06

标签: java

我有一个数组列表[Mod8, Mod5, Mod9, Mod10]和一个整数数组[1, 0, 2, 3]。我需要根据整数数组中的数字输出列表[Mod5, Mod8, Mod9, Mod10]。有关如何做到这一点的任何想法?

3 个答案:

答案 0 :(得分:2)

List<String> original = new ArrayList<String>();
original.add("Mod8");
original.add("Mod5");
original.add("Mod9");
original.add("Mod10");

int[] sortIndexArray = new int[] { 1, 0, 2, 3 };

List<String> sorted = new ArrayList<String>(original.size());
for (int i = 0; i < sortIndexArray.length; i++) {
  sorted.add(original.get(sortIndexArray[i]));
}

System.out.println(sorted); // [Mod5, Mod8, Mod9, Mod10]

答案 1 :(得分:1)

由于你的2个列表似乎紧密相连,我会创建一个Pair<Int,String>对象将它们绑定在一起,并为该Pair对象写一个比较器。

否则你必须保持两者在他们改变时保持同步,这将是有问题的。

答案 2 :(得分:0)

一种方法是创建一个实现类似接口的类。然后使用整数值覆盖compareTo()函数,以便以您需要的方式比较它们。 希望有所帮助!