Commit 6f7399bd by Patryk Czarnik

sortowanie i minmax funkcyjnie

parent bc709a5a
package emps;
import java.util.List;
import java.util.stream.Collectors;
public class F5_MinMax_Liczby {
public static void main(String[] args) {
List<Employee> emps = ObslugaCSV.wczytaj();
int min = emps.stream()
.mapToInt(Employee::getSalary)
.min()
.orElse(0);
int max = emps.stream()
.mapToInt(Employee::getSalary)
.max()
.orElse(0);
System.out.println("Minimalna pensja: " + min);
System.out.println("Maksymalna pensja: " + max);
}
}
package emps;
import java.util.Comparator;
import java.util.List;
import java.util.Optional;
public class F5_MinMax_Obiekty {
public static void main(String[] args) {
List<Employee> emps = ObslugaCSV.wczytaj();
Optional<Employee> min = emps.stream().min(Comparator.comparingInt(Employee::getSalary));
if(min.isPresent()) {
Employee emp = min.get();
System.out.println("Najmniej czyli " + emp.getSalary() + " zarabia " + emp.getFirstName() + " " + emp.getLastName());
}
Optional<Employee> max = emps.stream().max(Comparator.comparingInt(Employee::getSalary));
if(max.isPresent()) {
Employee emp = max.get();
System.out.println("Najwięcej czyli " + emp.getSalary() + " zarabia " + emp.getFirstName() + " " + emp.getLastName());
}
// Inne podejścia do korzystania z Optionali będą w przykładach "sprzedaz"
}
}
package emps;
import java.util.Comparator;
import java.util.List;
public class F6_Sortowanie {
public static void main(String[] args) {
List<Employee> emps = ObslugaCSV.wczytaj();
emps.stream()
.sorted(Comparator.comparingInt(Employee::getSalary).reversed())
.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;
import java.util.Set;
import java.util.stream.Collectors;
public class F7_UnikalneMiasta {
public static void main(String[] args) {
List<Employee> emps = ObslugaCSV.wczytaj();
// podejście 1 - tworzymy Set
Set<String> miasta = emps.stream()
.map(Employee::getCity)
.collect(Collectors.toSet());
System.out.println("Mam zbiór o rozmiarze " + miasta.size());
miasta.forEach(m -> System.out.println("- " + m));
System.out.println();
// podejście 2 - usuwanie duplikatów i wypisywanie "w locie"
emps.stream()
.map(Employee::getCity)
.distinct()
.forEach(m -> System.out.println("* " + m));
}
}
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