Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
525 / 261 / 69
Регистрация: 11.12.2016
Сообщений: 1,223
1

Lambda with thenComparing() Как присоединить?

07.10.2018, 18:02. Показов 1753. Ответов 1

Всем привет. Читая тему о компараторах, где автор объяснял и лямбды и отдельно thenComparing() предыдущего компаратора но уже без лямбды, автор предложил сделать компаратор и потом thenComparing() в лямбдах.
У меня к сожалению не получается, проблемы с синтаксисом.
как пример :
Java
1
2
3
4
5
TreeSet<String> ts = new TreeSet<>( (a,b) -> b.compareTo(a) );  // Ok
TreeSet<String> ts = new TreeSet<>( new MyCompare().thenComparing(new SecondMyCompare() ) );   // Ok
 
TreeSet<String> ts = new TreeSet<>( ( (a,b) -> {return b.compareTo(a);})
.thenComparing(new SecondMyCompare()  )  );      // Error
А если вместо new SecondMyCompare() попытатся вставить лямбду, то вообще не знаю как..
thenComparing( (a, b) -> {return a.compareTo(b);}) тоже наверное не вариант, это совсем другие a, b.

Добавлено через 19 минут
Частично решил, вынес с аргументов лямбду и использовал ссылку на нее, а как с одной лямбды без ссылки вызвать другую пока непонятно.
Java
1
2
Comparator<String> myComparator = (a, b) -> {..};
TreeSet<String> set = new TreeSet<>(myComparator.thenComparing((a, b) -> {return b.compareTo(a);}) );
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.10.2018, 18:02
Ответы с готовыми решениями:

Сконструировать \lambda-вызов и вычислить его значение Lambda
Задание Для выражения из таблицы согласно номеру варианта сконструировать \lambda - вызов и...

Как работают lambda выражения?
Можете объяснить как работает функция lambda? у меня вот такая часть задачи: (lambda (car(L)...

Как думаете, является ли короткая lambda-функция недостатком?
Мне кажется, должны быть описаны не только достоинства языка, но и недостатки. Какие я могу...

Как с использованием map и lambda-функции преобразовать этот код?
# -*- coding: utf-8 -*- from lxml import html import requests page =...

1
Эксперт Java
3294 / 2356 / 425
Регистрация: 28.04.2012
Сообщений: 7,863
07.10.2018, 23:17 2
Лучший ответ Сообщение было отмечено ViktorFX как решение

Решение

Цитата Сообщение от ViktorFX Посмотреть сообщение
как с одной лямбды без ссылки вызвать другую пока непонятно
Нужно указать её интерфейс, т.к. компилятор не может вывести его из-за недостатка информации.

Java
1
2
3
4
        TreeSet<String> set = new TreeSet<>(
                ((Comparator<String>) (a, b) -> a.compareTo(b))
                        .thenComparing((a, b) -> b.compareTo(a))
        );
2
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.10.2018, 23:17

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Как к строке присоединить tab?
есть строка(char) нужно к концу ее присоединить табуляцию, strcpy не помогает(размер массива не...

Как присоединить вторую форму?
Вернее как соедить я знаю, просто из другого проекта как взять незнаю. Готовую уже хочу взять!

Шаблон: как присоединить к документу?
Добрый день! вычитала в книжке по word'у, что &quot;после того ,как документ создан, к нему можно...

Как присоединить комп к домену
Здраствуйте уважаемые ! есть следующая проблема, после переустановки Венды, не знаю как...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.