2

以下のメソッドのラムダをメソッド参照に置き換える方法を理解するのを手伝ってください。

    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;
    }
4

2 に答える 2

7

同等のメソッド参照は次のようになりcomparing(Person::getStartDate)ます。特定のケースでは、ストリームを直接ソートできることに注意してください。また、 s のみを受け入れるようにメソッドを制限する意味はありLinkedHashSetません。どのコレクションでも可能です。

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;
于 2015-06-15T17:38:35.257 に答える
4

Comparator.comparingヘルパー メソッドを使用します。

Collections.sort(pList, Comparator.comparing(Person::getStartDate));
于 2015-06-15T17:25:49.253 に答える