Commit 16322821 by Patryk Czarnik

Ostatnie przykłady emps funkcyjnie

parent 69cbf8ac
package emps.v3_funkcyjnie;
import java.util.Comparator;
import java.util.List;
public class F5_MinMax {
public static void main(String[] args) {
List<Employee> emps = ObslugaCSV.wczytajDane();
// Aby uzyskać samą wartość, robimy podobnie jak w przypadku średniej
int minSalary = emps.stream()
.mapToInt(Employee::getSalary)
.min()
.orElse(0);
System.out.println("Najmniejsza pensja " + minSalary);
// Łatwo też jest uzyskać obiekty. Trzeba podać sposób porównywania, czyli Comparator.
Employee min = emps.stream().min(Comparator.comparingInt(Employee::getSalary)).orElse(null);
Employee max = emps.stream().max(Comparator.comparingInt(Employee::getSalary)).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 F6_Sortowanie {
public static void main(String[] args) {
List<Employee> emps = ObslugaCSV.wczytajDane();
// emps.parallelStream()
emps.stream()
.sorted(Comparator.comparingInt(Employee::getSalary).reversed())
.forEachOrdered(emp -> System.out.printf("%s %s (%s) zarabia %d%n", emp.getFirstName(),
emp.getLastName(), emp.getJobTitle(), emp.getSalary()));
}
}
package emps.v3_funkcyjnie;
import java.util.List;
import java.util.Set;
import java.util.function.Predicate;
import java.util.stream.Collectors;
public class F7_MiastaBezPowtorzen {
public static void main(String[] args) {
List<Employee> emps = ObslugaCSV.wczytajDane();
// Podejście1: chcemy uzyskać kolekcję wartości bez powtórzeń → kolektor budujący zbiór
Set<String> miasta = emps.stream()
.map(Employee::getCity)
.collect(Collectors.toSet());
System.out.println(miasta);
System.out.println();
Predicate<String> pusty = String::isEmpty;
Predicate<String> niepusty = pusty.negate();
// Podejście2: chcemy wykonać operację, np. print, dla wartości bez powtórzeń → operacja pośrednia distinct
emps.stream()
.map(Employee::getCity)
.filter(niepusty)
.distinct()
.forEach(System.out::println);
}
}
package emps.v3_funkcyjnie;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class F8_Partycje {
public static void main(String[] args) {
List<Employee> emps = ObslugaCSV.wczytajDane();
// Podział rekordów na dwie części i zapisanie w słowniku,
// w którym kluczem są wartości true/false
Map<Boolean, List<Employee>> grupy = emps.stream()
.collect(Collectors.partitioningBy(emp -> emp.getSalary() >= 10_000));
System.out.println("Bogaci:");
grupy.get(true).forEach(emp -> {
System.out.printf(" * %s %s (%s), pensja: %s\n", emp.getFirstName(), emp.getLastName(), emp.getJobTitle(), emp.getSalary());
});
System.out.println("\nBiedni:");
grupy.get(false).forEach(emp -> {
System.out.printf(" * %s %s (%s), pensja: %s\n", emp.getFirstName(), emp.getLastName(), emp.getJobTitle(), emp.getSalary());
});
}
}
package emps.v3_funkcyjnie;
public class IleMamProckow {
public static void main(String[] args) {
Runtime runtime = Runtime.getRuntime();
System.out.println("procki " + runtime.availableProcessors());
System.out.println("zajęta pamięć: " + (runtime.totalMemory() - runtime.freeMemory()));
}
}
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