Сортировка значений TreeMap в алфавитном порядке - PullRequest
0 голосов
/ 30 октября 2018

Я пытаюсь отсортировать TreeMap по его значениям, чтобы я мог распечатать значения в алфавитном порядке на основе имени этого конкретного объекта.

TreeMap<String, Product>

for(Product item : map.values()){
  System.out.println(item.getName());
}

Где Product - это пользовательский объект со следующими полями:

private String category;
private String name;

Есть ли способ сделать это с пользовательскими объектами? Нужно ли перезаписывать метод CompareTo?

1 Ответ

0 голосов
/ 30 октября 2018

Вы должны дать Компаратор

map.values().stream()
            .sorted(Comparator.comparing(Product::getName))
            .forEach(System.out::println);

OR если вы не хотите терять ключи:

map.entrySet().stream()
            .sorted(Comparator.comparing(o -> o.getValue().getName()))
            .forEach(System.out::println);
...