所以,我想按顺序对双精度数组进行排序,并相应地对我的字符串数组进行排序。我的两个数组都有相同的长度。
我就是这样做的(改编自这里的另一个答案):
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
答案 0 :(得分:3)
在列表/数组进行排序时,您正在搜索元素。这是灾难的秘诀。您需要使用一个列表作为索引参考,另一个列表用于排序:
List<String> stringList = Arrays.asList(arrayS);
List<String> indexes = new ArrayList<>(stringList);
Collections.sort(stringList, Comparator.comparingDouble(s -> array[indexes.indexOf(s)]));