java stream实现 list根据另一个list排序
时间: 2023-08-02 11:05:10 浏览: 665
使用Java 8中的Stream API,同样可以实现根据另一个List排序的功能。可以使用Stream的sorted()方法结合Comparator自定义排序规则来实现:
```java
List<String> sortList = new ArrayList<>();
sortList.add("apple");
sortList.add("banana");
sortList.add("orange");
sortList.add("pear");
List<String> referenceList = new ArrayList<>();
referenceList.add("pear");
referenceList.add("apple");
referenceList.add("banana");
referenceList.add("orange");
List<String> sortedList = sortList.stream()
.sorted(Comparator.comparingInt(referenceList::indexOf))
.collect(Collectors.toList());
System.out.println(sortedList);
```
上述代码中,使用Stream的sorted()方法对需要排序的List进行排序,其中传入了一个自定义的Comparator对象,该对象的compare()方法中根据排序参照的List中元素的索引来比较需要排序的List中元素的大小关系,最终实现了按照参照List中元素的顺序进行排序的功能。最后通过collect()方法将排序后的元素重新收集到一个List中。
阅读全文