powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / TreeMap со своим Comparator через Лямбда-выражение
12 сообщений из 12, страница 1 из 1
TreeMap со своим Comparator через Лямбда-выражение
    #39555592
Molasar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!

Есть TreeMap сортирующий по ключу в обратном порядке:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
package mapsorttest06;
 
import java.util.Comparator;
import java.util.Map;
import java.util.TreeMap;
 
public class MapSortTest06 {
 
    public static void main(String[] args) {
        
        Map<Integer, String> treeMap = new TreeMap(
            new Comparator<Integer>() {
 
                @Override
                public int compare(Integer o1, Integer o2) {
                    return o2.compareTo(o1);
                }
        });
        
        treeMap.put(2, "Nick");
        treeMap.put(3, "Boris");
        treeMap.put(1, "Anton");
 
        System.out.println("Sorted treeMap: " + treeMap);
    }
 
}


Как правильно построить Лямбда- выражение при объявлении treeMap и переопределении compare в выше приведенном примере?

Мой вариант с лямбда не работает:
Код: java
1.
2.
Map<Integer, String> treeMap = new TreeMap(
            (Integer o1, Integer o2) -> o2.compareTo(o1));
...
Рейтинг: 0 / 0
TreeMap со своим Comparator через Лямбда-выражение
    #39555612
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MolasarКак правильно построить Лямбда- выражение при объявлении treeMap и переопределении compare в выше приведенном примере?
Код: java
1.
Map<Integer, String> treeMap = new TreeMap<>((o1, o2) -> o2.compareTo(o1));
...
Рейтинг: 0 / 0
TreeMap со своим Comparator через Лямбда-выражение
    #39555628
pavel_nv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не нужны тут лямбды, используйте method reference
Код: java
1.
String::compareTo
...
Рейтинг: 0 / 0
TreeMap со своим Comparator через Лямбда-выражение
    #39555633
Valery Shiskin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pavel_nv,

А String причем?
...
Рейтинг: 0 / 0
TreeMap со своим Comparator через Лямбда-выражение
    #39555637
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MolasarЕсть TreeMap сортирующий по ключу в обратном порядке:

Comparator. reverse ()? Не ни знаю такова.
...
Рейтинг: 0 / 0
TreeMap со своим Comparator через Лямбда-выражение
    #39555638
Valery Shiskin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pavel_nv,

Понимаю, Вы просто ошиблись, но суть верная и в данном случае у Вас самое красивое решение

Map<Integer, String> treeMap = new TreeMap(Integer::compareTo);
...
Рейтинг: 0 / 0
TreeMap со своим Comparator через Лямбда-выражение
    #39555639
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valery Shiskin
Код: java
1.
Map<Integer, String> treeMap = new TreeMap(Integer::compareTo);


И, конечно же, всем плевать что ТС нужен обратный компаратор?
...
Рейтинг: 0 / 0
TreeMap со своим Comparator через Лямбда-выражение
    #39555640
Valery Shiskin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valery Shiskin,
Но с учетом обратного порядка сортировки, наверное:

Код: java
1.
Map<Integer, String> treeMap = new TreeMap<>(Comparator.reverseOrder());
...
Рейтинг: 0 / 0
TreeMap со своим Comparator через Лямбда-выражение
    #39555641
Valery Shiskin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,

Согласен. Уже исправился
...
Рейтинг: 0 / 0
TreeMap со своим Comparator через Лямбда-выражение
    #39555717
Molasar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Usman, спасибо за ответ.
Вы единственный, кто понял суть вопроса.

А что даёт в данном примере добавление <>?

Я пользуюсь NetBeans и при объявлении коллекций никогда не указываю пустые <>.
...
Рейтинг: 0 / 0
TreeMap со своим Comparator через Лямбда-выражение
    #39555718
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MolasarА что даёт в данном примере добавление <>?это т.н. "бриллиантовый оператор" MolasarЯ пользуюсь NetBeans и при объявлении коллекций никогда не указываю пустые <>. Ошибка десятая: использование сырых типов (raw type) вместо параметризованных
...
Рейтинг: 0 / 0
TreeMap со своим Comparator через Лямбда-выражение
    #39555730
Molasar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Usman, Большое спасибо! Разобрался!
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / TreeMap со своим Comparator через Лямбда-выражение
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]