Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
1 / 1 / 3
Регистрация: 19.02.2015
Сообщений: 66

Лямбда выражение

17.10.2015, 23:44. Показов 2626. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Список dest содержит информацию о ценах на перелеты в виде субтитров:
port_wylety port_prilety cena_w_EUR

Необходимо создать список результатов, элементы которого будут описывать цены на перелеты в отдельных местах (только) из Варшавы в PLN и отписаться на консоли ее другие элементы.

Чтобы решить эту задачу, необходимо создать sparametryzowaną класс ListCreator, содержащий:
статический метод, collectFrom (список)
метод when
метод mapEvery
которые работают таким образом, что символическая запись:

collectFrom(list).when(lambda-1).mapEvery(lambda-2)

чтобы создать список результатов, элементы которого представляют собой выбранный lambda-1 элементов списка list, преобразованы с помощью указанного lambda-2.

Примечания:
в задаче нельзя использовать собственные интерфейсы,
класс ListCreator и ее методы должны работать для списков (исходного и целевого) элементов произвольного типа.


Есть главный класс.
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
28
29
30
public class Main {
 
      static List<String> getPricesInPLN(List<String> destinations, double xrate) {
        return ListCreator.collectFrom(destinations)
                           .when(  /*<-- лямбда-выражение
* отбор вылета из Варшавы (начинающиеся с WAW)
*/
                            )
                           .mapEvery( /*<-- лямбда-выражение
* расчет цены перелета в PLN
* и создания результирующего текста
*/
                            );
      }
 
      public static void main(String[] args) {
        // Список направлений: port_wylotu port_przylotu cena_EUR 
        List<String> dest = Arrays.asList(
          "bleble bleble 2000",
          "WAW HAV 1200",
          "xxx yyy 789",
          "WAW DPS 2000",
          "WAW HKT 1000"
        );
        double ratePLNvsEUR = 4.30;
        List<String> result = getPricesInPLN(dest, ratePLNvsEUR);
        for (String r : result) System.out.println(r);
      }
    }
}

Пытался сделать, но не выходит(
отфильтровать хотел , но как-то не выходит.
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
import java.util.*;
public class ListCreator<T>{ 
                public List<T> list;
                public String wynik;
                public String[] tmp;
                double ratePLNvsEUR = 4.30;
                public static Object collectFrom(List<String> destinations) {
                    
                    return null;
                }
          ///////metodę when
                public String  when(){
                    
                    destinations.stream().filter(text -> text.startsWith("WAW")).map(text -> {      
                      tmp = ((String) text).split(" ");
                   wynik = "to " + tmp[1] + " - price in PLN: " ;}
                
                                                       
                }
        ////////metodę mapEvery
                public String mapEvery(){
                    
                     for (String resul : wynik)
                    wynik = resul + (int)(Integer.parseInt(tmp[2]) * ratePLNvsEUR) ;
                       return wynik;
     }
Да , знаю что то что я написал чушь, но я пытался(
Помогите с этой задачкой.

Заранее спасибо.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.10.2015, 23:44
Ответы с готовыми решениями:

Лямбда выражение вместо Comparator
Здравствуйте, начинаю изучение Java 8. К сожалению, не понимаю как выполнить задание из книги, прошу вашей помощи: Отсортируйте...

Задача. Лямбда-выражение в параметрах метода
Прохожу &quot;Java. Базовый курс&quot; на степике. Туплю сказочно. Решить задачу за меня не прошу. Но вопрос есть. Задача. // Условия ...

Лямбда выражения
В одной теме https://www.cyberforum.ru/java-j2se/thread1794469 пользователь xoraxax показал код private static final int a =...

8
-20 / 1 / 0
Регистрация: 12.10.2016
Сообщений: 21
12.10.2016, 11:54
Лямбда-выражения у тебя должны быть в Main. Ты неправильно реализуешь методы when() и mapEvery(). Они должны принимать параметры ("WAW", ...). Вечером подумаю...
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
12.10.2016, 13:01
2 раза условие перечитывал - нифига не понятно
0
-20 / 1 / 0
Регистрация: 12.10.2016
Сообщений: 21
12.10.2016, 14:08
Java
1
2
3
 return ListCreator.collectFrom(destinations)
                .when(v -> v.equals("WAW"))
                .mapEvery(v -> v * xrate);
Вот это твои лямбда-выражения, отправляющие параметры в 2 метода

Добавлено через 5 минут
class ListCreator<T> у тебя ваще неправильно реализован
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4575 / 2774 / 491
Регистрация: 28.04.2012
Сообщений: 8,765
12.10.2016, 20:27
Цитата Сообщение от Krowli Посмотреть сообщение
Чтобы решить эту задачу, необходимо создать sparametryzowaną класс ListCreator, содержащий:
статический метод, collectFrom (список)
метод when
метод mapEvery
которые работают таким образом, что символическая запись:
collectFrom(list).when(lambda-1).mapEvery(lambda-2)
Какое-то бестолковое задание. mapEvery терминальный метод что ли? Или каждый из этих методов создаёт промежуточный список вместо использования stream'ов?
0
-20 / 1 / 0
Регистрация: 12.10.2016
Сообщений: 21
12.10.2016, 23:13
Ловите
Вложения
Тип файла: txt ListCreator.txt (3.6 Кб, 77 просмотров)
Тип файла: txt Main.txt (1.4 Кб, 77 просмотров)
0
-20 / 1 / 0
Регистрация: 12.10.2016
Сообщений: 21
12.10.2016, 23:14
Короче надо использовать готовые функц. интерфейсы java и потоки stream
0
502 / 348 / 134
Регистрация: 14.06.2016
Сообщений: 669
13.10.2016, 01:42
А если не по-польски, то видимо
Миниатюры
Лямбда выражение  
0
-20 / 1 / 0
Регистрация: 12.10.2016
Сообщений: 21
13.10.2016, 09:01
Это уже теория графов пошла =)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.10.2016, 09:01
Помогаю со студенческими работами здесь

Лямбда функция
Добрый день. Возможно ли как-то сделать здесь лямбда функцию? Выдаёт ошибку &quot;incompatible thrown types IOException in method...

Лямбда-функция
Можно ли в этот код добавить хоть одну лямбда-функцию? ...

Лямбда выражения
Добрый день, помогите, пожалуйста с лямбдой. Нужно переписать вот это: public static boolean CheckingString(String string) { ...

Поддержка лямбда-выражений
public interface MyNameIn { int GetValue(); } class LambdaDemo { public static void main(String args) { MyNameIn myInter; ...

Конструкторы и лямбда выражения
Добрый день. Появился вопрос при изучении лямбда выражений и ссылок на конструкторы. Пример из книги: interface MyFunc{ MyClass func...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru