基于双打数组排序字符串数组

时间:2017-03-10 21:31:27

标签: java arrays sorting exception

所以,我想按顺序对双精度数组进行排序,并相应地对我的字符串数组进行排序。我的两个数组都有相同的长度。

我就是这样做的(改编自这里的另一个答案):

arrayS包含字符串,array包含双打。

List<String> stringList = Arrays.asList(arrayS);
Collections.sort(stringList, Comparator.comparing(s -> array[stringList.indexOf(s)]));  

我在第二行出错了界限。

更多信息:

System.out.println("arrayS: "+arrayS.length+" array: "+array.length);

out -> arrayS: 125 array: 125

1 个答案:

答案 0 :(得分:3)

在列表/数组进行排序时,您正在搜索元素。这是灾难的秘诀。您需要使用一个列表作为索引参考,另一个列表用于排序:

List<String> stringList = Arrays.asList(arrayS);
List<String> indexes = new ArrayList<>(stringList);
Collections.sort(stringList, Comparator.comparingDouble(s -> array[indexes.indexOf(s)]));