Commit 716e1a62 by Patryk Czarnik

Pierwsze streamy

parent c1cb608d
package emps;
import java.util.List;
public class F1_WypiszWybranePola {
public static void main(String[] args) {
List<Employee> emps = ObslugaCSV.wczytaj("emps.csv");
emps.forEach(emp -> System.out.println(emp.getFirstName() + " " + emp.getLastName() + " zarabia " + emp.getSalary()));
// Można też przekazać "method reference" zamiast wyrażenia lambda, ale wtedy musimy wskazać istniejącą metodę:
// emps.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.csv");
emps.stream()
.filter(emp -> emp.getSalary() >= 10_000)
.forEach(emp -> System.out.println(emp.getFirstName() + " " + emp.getLastName() + " zarabia " + emp.getSalary()));
System.out.println("\nLista nadal ma " + emps.size() + " elementów.");
}
}
package emps;
import java.util.List;
public class F3_WypiszProgramistow {
public static void main(String[] args) {
List<Employee> emps = ObslugaCSV.wczytaj("emps.csv");
emps.stream()
.filter(emp -> "Programmer".equals(emp.getJobTitle()))
.forEach(emp -> System.out.println(emp.getFirstName() + " " + emp.getLastName() + " zarabia " + emp.getSalary()));
long ilu = emps.stream()
.filter(emp -> "Programmer".equals(emp.getJobTitle()))
.count();
System.out.println("\nPracowników spełniających warunek: " + ilu);
System.out.println("Lista nadal ma " + emps.size() + " elementów.");
}
}
package emps;
import java.util.List;
import java.util.stream.Collectors;
public class F4_SredniaWszystkich {
public static void main(String[] args) {
List<Employee> emps = ObslugaCSV.wczytaj("emps.csv");
double avg = emps.stream()
.mapToInt(Employee::getSalary) // równoważne lambdzie: emp -> emp.getSalary()
.average()
.orElse(0.0);
System.out.println(avg);
double avg2 = emps.stream().collect(Collectors.averagingInt(Employee::getSalary));
System.out.println(avg2);
}
}
// ZADANIE
// Program F5_SredniaProgramistow - oblicza średnią pensję na stanowisku Programmer
// F6_SredniaWybranych - użytkownik podaje nazwę stanowiska, a program oblicza średnią na tym stanowisku
......@@ -21,6 +21,9 @@ public class ObslugaCSV {
String[] t = linia.split(";", -1);
Employee emp = new Employee(Integer.parseInt(t[0]), t[1], t[2], t[3],
Integer.parseInt(t[4]), LocalDate.parse(t[5]), t[6], t[7], t[8], t[9], t[10]);
// if(java.util.concurrent.ThreadLocalRandom.current().nextDouble() < 0.1) {
// emp.setJobTitle(null);
// }
emps.add(emp);
}
......
......@@ -10,7 +10,7 @@ public class P1_WypiszWybranePola {
// Dla każdego pracownika wypisz imię, nazwisko i pensję
// np.: Steven King zarabia 24000
for (Employee emp : emps) {
for(Employee emp : emps) {
System.out.println(emp.getFirstName() + " " + emp.getLastName() + " zarabia " + emp.getSalary());
}
......
......@@ -6,12 +6,15 @@ public class P2_WypiszBogatych {
public static void main(String[] args) {
List<Employee> emps = ObslugaCSV.wczytaj("emps.csv");
int ilu = 0;
for(Employee emp : emps) {
if(emp.getSalary() >= 10_000) {
System.out.printf("Pracownik %s %s (%s) zarabia %d\n", emp.getFirstName(), emp.getLastName(), emp.getJobTitle(), emp.getSalary());
ilu++;
}
}
System.out.println("Pracowników spełniających warunek: " + ilu);
}
......
package emps;
import java.util.List;
public class P3_WypiszProgramistow {
// TODO Wypisz wszystkich programistów (jobTitle równy "Programmer")
public static void main(String[] args) {
List<Employee> emps = ObslugaCSV.wczytaj("emps.csv");
int ilu = 0;
for(Employee emp : emps) {
if("Programmer".equals(emp.getJobTitle())) {
System.out.printf("Pracownik %s %s (%s) zarabia %d\n", emp.getFirstName(), emp.getLastName(), emp.getJobTitle(), emp.getSalary());
ilu++;
}
}
System.out.println("Pracowników spełniających warunek: " + ilu);
}
}
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