Поскольку ваши Person
объекты Comparable
, вы можете напрямую вызвать метод sorted
и распечатать результат.
people.stream()
.sorted()
.forEachOrdered(n->System.out.println(n.getName() + " " + n.getColour()));
обратите внимание, что я использовал forEachOrdered
вместо forEach
для гарантии того, что элементы печатаются в отсортированном порядке.
Вы также можете решить отсортировать только мое имя или только по цвету, не изменяя текущую реализацию compareTo
, и в этом случае вы можете использоватьпользовательский компаратор:
people.stream()
.sorted(Comparator.comparing(Person::getName, String.CASE_INSENSITIVE_ORDER))
.forEachOrdered(n->System.out.println(n.getName() + " " + n.getColour()));
и по цвету:
people.stream()
.sorted(Comparator.comparing(Person::getColour, String.CASE_INSENSITIVE_ORDER))
.forEachOrdered(n->System.out.println(n.getName() + " " + n.getColour()));