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

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

27.12.2018, 10:58. Показов 900. Ответов 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
Ответ Создать тему
Новые блоги и статьи
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru