簡體   English   中英

用索引數組對列表進行排序的最佳方法

[英]Best way to sort list with index array

我想用整數數組對字符串列表進行排序作為新索引:

Integer[] newIndexes = {0,2,1};
List<String> fruits = new ArrayList<>();
fruits.add("Apple");
fruits.add("Pear");
fruits.add("Banana");
fruits.sort....

最好的方法是什么?

使用Java 8,您可以使用索引流和map()方法來實現:

List<String> sortedFruits = Stream.of(newIndexes).map(fruits::get).collect(Collectors.toList());

給出清單

[Apple, Banana, Pear]

您可以使用SortedMap將整數映射到字符串值。 這樣,它將根據鍵的自然順序對字符串值進行排序:

SortedMap<Integer, String> map = new TreeMap<Integer, String>();
for (int i = 0; i < newIndexes.length; i++) {
    map.put(newIndexes[i], fruits.get(i));
}

Collection<String> sortedFruits = map.values();

如果您打算按字母順序對字符串進行排序,則可以使用Collections#sort()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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