Java 用方法引用替换Lambdas。

Java 用方法引用替换Lambdas。,java,lambda,java-8,method-reference,Java,Lambda,Java 8,Method Reference,请帮助我了解如何使用以下方法的方法参考替换lambdas public List<Person> sortByStartDate_ASC(LinkedHashSet<Person> personList) { List<Person> pList = new ArrayList<Person>(personList); Collections.sort(pList, (Person person1, Pe

请帮助我了解如何使用以下方法的方法参考替换lambdas

    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;
    }
公共列表sortByStartDate\u ASC(LinkedHashSet个人列表){
List pList=新数组列表(personList);
Collections.sort(pList,(personperson1,personperson2)->person1
.getStartDate().compareTo(person2.getStartDate());
返回层;
}
使用助手方法:

Collections.sort(pList, Comparator.comparing(Person::getStartDate));

等效的方法引用是比较(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;