mirror of
https://github.com/Example-uPagge/debugger.git
synced 2024-06-14 11:22:32 +03:00
Добавил немного примеров со стримами
This commit is contained in:
parent
90756ccd27
commit
a5bc59b03f
@ -0,0 +1,89 @@
|
|||||||
|
package dev.struchkov.example.debugger.seven;
|
||||||
|
|
||||||
|
public class Employee {
|
||||||
|
|
||||||
|
private String firstName;
|
||||||
|
private String lastName;
|
||||||
|
private Integer age;
|
||||||
|
private Integer salary;
|
||||||
|
private Position position;
|
||||||
|
|
||||||
|
public Employee(String firstName, String lastName, Integer age, Integer salary, Position position) {
|
||||||
|
this.firstName = firstName;
|
||||||
|
this.lastName = lastName;
|
||||||
|
this.age = age;
|
||||||
|
this.salary = salary;
|
||||||
|
this.position = position;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFirstName() {
|
||||||
|
return firstName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFirstName(String firstName) {
|
||||||
|
this.firstName = firstName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLastName() {
|
||||||
|
return lastName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLastName(String lastName) {
|
||||||
|
this.lastName = lastName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getAge() {
|
||||||
|
return age;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAge(Integer age) {
|
||||||
|
this.age = age;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Position getPosition() {
|
||||||
|
return position;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPosition(Position position) {
|
||||||
|
this.position = position;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getSalary() {
|
||||||
|
return salary;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSalary(Integer salary) {
|
||||||
|
this.salary = salary;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return position + " " + firstName + " " + lastName + " " + age + " лет, зарплата: " + salary;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Employee of(String firstName, String lastName, Integer age, Integer salary, Position position) {
|
||||||
|
return new Employee(firstName, lastName, age, salary, position);
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum Position {
|
||||||
|
DEV("Разработчик"),
|
||||||
|
ACCOUNTANT("Бухгалтер"),
|
||||||
|
BOSS("Начальник отдела");
|
||||||
|
|
||||||
|
private final String title;
|
||||||
|
|
||||||
|
Position(String title) {
|
||||||
|
this.title = title;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTitle() {
|
||||||
|
return title;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return title;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,41 @@
|
|||||||
|
package dev.struchkov.example.debugger.seven;
|
||||||
|
|
||||||
|
import dev.struchkov.example.debugger.seven.Employee.Position;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
import static dev.struchkov.example.debugger.seven.Employee.Position.ACCOUNTANT;
|
||||||
|
import static dev.struchkov.example.debugger.seven.Employee.Position.BOSS;
|
||||||
|
import static dev.struchkov.example.debugger.seven.Employee.Position.DEV;
|
||||||
|
|
||||||
|
public class StreamMain {
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
|
||||||
|
final List<Employee> employees = List.of(
|
||||||
|
Employee.of("Екатерина", "Козлова", 28, 2_000_000, BOSS),
|
||||||
|
Employee.of("Алексей", "Кузнецов", 45, 90_000, ACCOUNTANT),
|
||||||
|
Employee.of("Юлия", "Козлова", 18, 35_000, ACCOUNTANT),
|
||||||
|
Employee.of("Никита", "Васильев", 22, 110_000, DEV),
|
||||||
|
Employee.of("Иван", "Иванов", 30, 300_000, DEV),
|
||||||
|
Employee.of("Анна", "Ермолова", 45, null, DEV),
|
||||||
|
Employee.of("Ирина", "Колесникова", 35, 200_000, DEV)
|
||||||
|
);
|
||||||
|
|
||||||
|
final Set<String> devs = employees.stream()
|
||||||
|
.filter(employee -> DEV.equals(employee.getPosition()))
|
||||||
|
.filter(employee -> employee.getSalary() != null)
|
||||||
|
.filter(employee -> employee.getSalary() > 150_000)
|
||||||
|
.map(Employee::getLastName)
|
||||||
|
.collect(Collectors.toSet());
|
||||||
|
|
||||||
|
final Map<Position, List<Employee>> collect = employees.stream()
|
||||||
|
.filter(employee -> employee.getSalary() != null)
|
||||||
|
.collect(Collectors.groupingBy(Employee::getPosition));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user