用方法引用替换 Lambda。
Replace Lambdas with method reference.
请帮助我了解如何将 lambda 替换为以下方法的方法参考。
public List<Person> sortByStartDate_ASC(LinkedHashSet<Person> personList) {
List<Person> pList = new ArrayList<Person>(personList);
Collections.sort(pList, (Person person1, Person person2) -> person1
.getStartDate().compareTo(person2.getStartDate()));
return pList;
}
使用Comparator.comparing
辅助方法:
Collections.sort(pList, Comparator.comparing(Person::getStartDate));
等效的方法参考是 comparing(Person::getStartDate)
- 请注意,在您的特定情况下,您可以直接对流进行排序。也没有必要限制你的方法只接受 LinkedHashSet
s - 任何集合都可以:
public List<Person> sortByStartDate_ASC(Collection<Person> personList) {
return personList.stream()
.sorted(comparing(Person::getStartDate))
.collect(toList());
}
注意需要静态导入:
import static java.util.Comparator.comparing;
import static java.util.stream.Collectors.toList;
请帮助我了解如何将 lambda 替换为以下方法的方法参考。
public List<Person> sortByStartDate_ASC(LinkedHashSet<Person> personList) {
List<Person> pList = new ArrayList<Person>(personList);
Collections.sort(pList, (Person person1, Person person2) -> person1
.getStartDate().compareTo(person2.getStartDate()));
return pList;
}
使用Comparator.comparing
辅助方法:
Collections.sort(pList, Comparator.comparing(Person::getStartDate));
等效的方法参考是 comparing(Person::getStartDate)
- 请注意,在您的特定情况下,您可以直接对流进行排序。也没有必要限制你的方法只接受 LinkedHashSet
s - 任何集合都可以:
public List<Person> sortByStartDate_ASC(Collection<Person> personList) {
return personList.stream()
.sorted(comparing(Person::getStartDate))
.collect(toList());
}
注意需要静态导入:
import static java.util.Comparator.comparing;
import static java.util.stream.Collectors.toList;