Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 26.11.2017
Сообщений: 69

Лямбда-функция

27.12.2018, 10:58. Показов 920. Ответов 3

Студворк — интернет-сервис помощи студентам
Можно ли в этот код добавить хоть одну лямбда-функцию? ()
Задали добавить в код лямбда-выражения, которые задаются стрелочкой (->).

Вот сам код:

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
package com.company;
 
 
public class Car {
 
    private String model;
    private double mpg;
    private double cyl;
    private double disp;
    private double hp;
    private double drat;
    private double wt;
    private double qsec;
    private double vs;
    private double am;
    private double gear;
    private double carb;
 
    
    
   public Car(String model, double mpg, double cyl, double disp,
            double hp, double drat, double wt, double qsec, 
            double vs, double am, double gear, double carb) {
        
        
        
        this.model = model;
        this.mpg = mpg;
        this.cyl = cyl;
        this.disp = disp;
        this.hp = hp;
        this.drat = drat;
        this.wt = wt;
        this.qsec = qsec;
        this.vs = vs;
        this.am = am;
        this.gear = gear;
        this.carb = carb;
    }
 
    public String getModel() {
        return model;
    }
 
    public void setModel(String model) {
        this.model = model;
    }
 
    public double getMpg() {
        return mpg;
    }
 
    public void setMpg(double mpg) {
        this.mpg = mpg;
    }
 
    public double getCyl() {
        return cyl;
    }
 
    public void setCyl(double cyl) {
        this.cyl = cyl;
    }
 
    public double getDisp() {
        return disp;
    }
 
    public void setDisp(double disp) {
        this.disp = disp;
    }
 
    public double getHp() {
        return hp;
    }
 
    public void setHp(double hp) {
        this.hp = hp;
    }
 
    public double getDrat() {
        return drat;
    }
 
    public void setDrat(double drat) {
        this.drat = drat;
    }
 
    public double getWt() {
        return wt;
    }
 
    public void setWt(double wt) {
        this.wt = wt;
    }
 
    public double getQsec() {
        return qsec;
    }
 
    public void setQsec(double qsec) {
        this.qsec = qsec;
    }
 
    public double getVs() {
        return vs;
    }
 
    public void setVs(double vs) {
        this.vs = vs;
    }
 
    public double getAm() {
        return am;
    }
 
    public void setAm(double am) {
        this.am = am;
    }
 
    public double getGear() {
        return gear;
    }
 
    public void setGear(int gear) {
        this.gear = gear;
    }
 
    public double getCarb() {
        return carb;
    }
 
    public void setCarb(double carb) {
        this.carb = carb;
    }
 
    @Override
    public String toString() {
        return "Car{" +
                "model='" + model + '\'' + ",\t mpg=" + mpg +
                ",\t cyl=" + cyl + ",\t disp=" + disp +
                ",\t hp=" + hp + ",\t drat=" + drat +
                ",\t wt=" + wt + ",\t qsec=" + qsec +
                ",\t vs=" + vs + ",\t am=" + am +
                ",\t gear=" + gear + ",\t carb=" + carb + '}';
    }
    
    
    
}


Нашел такой пример в интернете:
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
public class Main {
    public static void main(String[] args) {
        // создаем кота и выводим на экран чтоб убедиться, что он "пустой"
        Cat myCat = new Cat();
        System.out.println(myCat);
 
        // создаем лямбду
        Settable<Cat> s = (obj, name, age) -> {
            obj.setName(name);
            obj.setAge(age);
        };
 
        // вызываем метод, в который передаем кота и лямбду
        changeEntity(myCat, s);
        // выводим на экран и видим, что состояние кота изменилось (имеет имя и возраст)
        System.out.println(myCat);
    }
 
    private static <T extends WithNameAndAge>  void changeEntity(T entity, Settable<T> s) {
        s.set(entity, "Мурзик", 3);
    }
}
 
interface WithNameAndAge {
    void setName(String name);
    void setAge(int age);
}
 
interface Settable<C extends WithNameAndAge> {
    void set(C entity, String name, int age);
}
 
class Cat implements WithNameAndAge {
    private String name;
    private int age;
 
    @Override
    public void setName(String name) {
        this.name = name;
    }
 
    @Override
    public void setAge(int age) {
        this.age = age;
    }
 
    @Override
    public String toString() {
        return "Cat{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.12.2018, 10:58
Ответы с готовыми решениями:

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

Лямбда выражение
Список dest содержит информацию о ценах на перелеты в виде субтитров: port_wylety port_prilety cena_w_EUR Необходимо создать список...

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

3
230 / 199 / 71
Регистрация: 21.10.2016
Сообщений: 449
27.12.2018, 11:13
что за шифр в полях?
hp - hewlett-packard?
wt - what? width?
drat - это вообще ругательство "пропади ты пропадом!"

Сделай нормально, а то смотреть невозможно.
0
 Аватар для NiceJacket
109 / 89 / 25
Регистрация: 02.06.2018
Сообщений: 259
27.12.2018, 11:27
Выжато из пальца как-то, если нужна лямбда ради лямбды, ну сделайте вы в мэйне какой-нибудь treeset автомобилей и задайте ему компаратор, чтобы они были упорядочены, например, по л/c :

Java
1
2
3
4
Set<Car> cars = new TreeSet<>((Car c1, Car c2) -> Double.compare(c1.getHp(), c2.getHp()));
cars.add(new Car(сто пицот параметров));
cars.add(new Car(сто пицот параметров));
...
0
528 / 263 / 70
Регистрация: 11.12.2016
Сообщений: 1,223
27.12.2018, 12:07
В чем проблема? Используйте Car вместо Cat, и изменяйте пару других полей (полей имени и возраста у вас нет).
А вообще поддерживаю идею на счет компараторов, не зря же у вас задан такой класс.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.12.2018, 12:07
Помогаю со студенческими работами здесь

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

Лямбда-выражения в Java
Подскажите пожалуйста, как переписать следующий класс с использованием лямбда-выражений? Хотя бы некоторые методы. import java.io.*; ...

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

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

Книга по лямбда-выражениям
Посоветуйте хорошую книгу по лямбда-выражениях, знания Java Core хорошие. Интересует именно эта тема + интересные фичи 1.8. Спасибо.


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru