Commit 3ab1fc85 by Patryk Czarnik

ostatnie przykłady v3 funkcyjnie w środę

parent 68309154
...@@ -5,7 +5,7 @@ import java.util.List; ...@@ -5,7 +5,7 @@ import java.util.List;
public class P2_Filtrowanie { public class P2_Filtrowanie {
// Program wypisuje tylko zarabiających >= 10 tys, // Program wypisuje tylko zarabiających >= 10 tys,
// realizujemy to filtrowanaiem, ale przy okazji pokazuję Wam schemat "filter / map" - podstawowe operacje na strumieniach. // realizujemy to filtrowaniem, ale przy okazji pokazuję Wam schemat "filter / map" - podstawowe operacje na strumieniach.
public static void main(String[] args) { public static void main(String[] args) {
List<Employee> emps = ObslugaCSV.wczytaj("emps.csv"); List<Employee> emps = ObslugaCSV.wczytaj("emps.csv");
......
package emps.v3_funkcyjnie;
import java.util.List;
import java.util.OptionalDouble;
import javax.swing.JOptionPane;
public class P4_SredniaJedenJob {
public static void main(String[] args) {
List<Employee> emps = ObslugaCSV.wczytaj("emps.csv");
String szukanyJob = JOptionPane.showInputDialog("Podaj szukany job", "Programmer");
double srednia1 = emps.stream()
.filter(emp -> emp.getJobTitle().equalsIgnoreCase(szukanyJob))
.mapToInt(Employee::getSalary)
.average()
.orElse(0);
JOptionPane.showMessageDialog(null, "Wersja prosta: " + srednia1);
// Jeśli chcemy sprawdzić, czy zostało coś znalezione, możemy zapisać wynik jako OptionalDouble i sprawdzić ifem
OptionalDouble srednia2 = emps.stream()
.filter(emp -> emp.getJobTitle().equalsIgnoreCase(szukanyJob))
.mapToInt(Employee::getSalary)
.average();
if(srednia2.isPresent()) {
JOptionPane.showMessageDialog(null, String.format(
"Średnia pensja na stanowisku %s wynosi %.2f",
szukanyJob, srednia2.getAsDouble()));
} else {
JOptionPane.showMessageDialog(null, String.format("Nikt nie pracuje na stanowisku %s.", szukanyJob),
"Brak danych", JOptionPane.WARNING_MESSAGE);
}
}
}
package emps.v3_funkcyjnie;
import java.util.Comparator;
import java.util.List;
public class P6_MinMax {
public static void main(String[] args) {
List<Employee> emps = ObslugaCSV.wczytaj("emps.csv");
Comparator<Employee> waga = Comparator.comparingInt(Employee::getSalary);
// uwaga - tu trochę upraszczamy; zakładam, że dane w pliku na pewno są - inne wersje w przykładach Opcjonalne???
Employee min = emps.stream().min(waga).orElse(null);
Employee max = emps.stream().max(waga).orElse(null);
System.out.println("min: " + min);
System.out.println("max: " + max);
}
}
package emps.v3_funkcyjnie;
import java.util.Comparator;
import java.util.List;
public class P7_Sortowanie {
public static void main(String[] args) {
List<Employee> emps = ObslugaCSV.wczytaj("emps.csv");
emps.stream()
.sorted(Comparator.comparingInt(Employee::getSalary).reversed())
.map(emp -> emp.getFirstName() + " " + emp.getLastName() + " " + 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