Commit 5f757c85 by Patryk Czarnik

EMPS - Pierwsze wersje ze streamami

parent 2037f6c0
package emps;
import java.util.List;
public class F0_WypiszObiekty {
public static void main(String[] args) {
List<Employee> emps = ObslugaCSV.wczytaj();
// Zamiast pisać pętlę for(Employee emp : emps)
// można użyć metody forEach:
// emps.forEach(emp -> System.out.println(emp.getFirstName() + " " + emp.getLastName()));
// Do forEach przekazuje się operację, którą chcemy wykonać dla każdego elemetu listy.
// Można podać wyrażenie lambda ↑
// Można też refrencję do metody ↓
emps.forEach(System.out::println);
// forEach może być uruchamiany bezpośrednio na listach, ale można też wprowadzić pośredni krok
// pobrania strumienia. To by miało większy sens, gdybyśmy chcieli wykonać operacje pośrednie (od programu nr 2)
// emps.stream().forEach(System.out::println);
}
}
package emps;
import java.util.List;
public class F1_WypiszWybranePola {
public static void main(String[] args) {
List<Employee> emps = ObslugaCSV.wczytaj();
// podejście 1: forEach bezpośrednio na liście
// emps.forEach(emp -> System.out.printf("%s %s (%s) zarabia %d%n",
// emp.getFirstName(), emp.getLastName(), emp.getJobTitle(), emp.getSalary()));
// podejście 2: najpierw mapujemy obiekty Employee na obiekty String, a następnie wypisujemy w prosty sposób
emps.stream()
.map(emp -> String.format("%s %s (%s) zarabia %d",
emp.getFirstName(), emp.getLastName(), emp.getJobTitle(), emp.getSalary()))
.forEach(System.out::println);
}
}
package emps;
import java.util.List;
public class F2_WypiszBogatych {
public static void main(String[] args) {
List<Employee> emps = ObslugaCSV.wczytaj();
emps.stream()
.filter(emp -> emp.getSalary() >= 10_000)
.forEach(emp -> System.out.printf("%s %s (%s) zarabia %d%n",
emp.getFirstName(), emp.getLastName(), emp.getJobTitle(), emp.getSalary()));
// Można też najpierw zmapować na Stringi, a potem wypisać
// emps.stream()
// .filter(emp -> emp.getSalary() >= 10_000)
// .map(emp -> String.format("%s %s (%s) zarabia %d",
// emp.getFirstName(), emp.getLastName(), emp.getJobTitle(), emp.getSalary()))
// .forEach(System.out::println);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment