[英]Sorting array of Strings based on array of Doubles
所以,我想按順序對雙精度數組進行排序,並相應地對我的字符串數組進行排序。 我的兩個數組都有相同的長度。
我就是這樣做的(改編自這里的另一個答案):
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
您正在對列表/數組進行排序時搜索元素。 這是災難的秘訣。 您需要使用一個列表作為索引引用,另一個列表用於排序:
List<String> stringList = Arrays.asList(arrayS);
List<String> indexes = new ArrayList<>(stringList);
Collections.sort(stringList, Comparator.comparingDouble(s -> array[indexes.indexOf(s)]));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.