假設我們有 list[3,7,2,8,1,9,4]和 sublist [4,1,7,9]。
我們希望對子串列進行排序,使其元素的順序與超串列中相同元素的順序相同。
[4,1,7,9] -> [7,1,9,4]
在 Java 中實作這一目標的有效而優雅的方法是什么?
uj5u.com熱心網友回復:
還假設listandsubList是型別ArrayList但使用 java8 strean api。
var list = List.of(3,7,2,8,1,9,4);
var subList = List.of(4,1,7,9);
var orderedList = subList.stream()
.sorted(Comparator.comparing(list::indexOf))
.collect(Collectors.toList());
uj5u.com熱心網友回復:
我假設list并且sublist是arrayList
list.forEach(l -> {
var index = Iterables.indexOf(subList, s -> s == l);
if (index != -1) {
subList.add(subList.get(index));
subList.remove(index);
}
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/491471.html
