簡體   English   中英

基於雙打數組排序字符串數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM