Commit 23e9ec31 by Patryk Czarnik

Grupowanie - pierwsze wersje na zajęciach

parent a2e5092e
package emps.v2_obiektowo;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;
// Dla każdego jobTitle występującego w pliku,
// program oblicza średnią pensję pracowników na tym stanowisku.
// Ta wersja ma gorszą złożoność obliczeniową od pozostałych. Tutaj dla każdego joba ponownie przeglądana jest cała lista proacowników.
public class Grupowanie0 {
public static void main(String[] args) {
List<Employee> emps = ObslugaCSV.wczytaj("emps.csv");
// etap 1: ustalenie zbioru jobów bez powtórzeń
Set<String> jobs = new TreeSet<>();
for(Employee emp : emps) {
jobs.add(emp.getJobTitle());
}
// etap 2: dla każdego joba obliczamy średnią przeglądając wszystkoich pracowników i sprawdzając ifem
for(String job : jobs) {
double suma = 0;
int ile = 0;
for(Employee emp : emps) {
if(job.equals(emp.getJobTitle())) {
suma += emp.getSalary();
ile++;
}
}
double srednia = suma / ile;
System.out.printf("%-32s | %2d | %8.2f%n", job, ile, srednia);
}
}
}
package emps.v2_obiektowo;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class Grupowanie1 {
public static void main(String[] args) {
List<Employee> emps = ObslugaCSV.wczytaj("emps.csv");
Map<String, Integer> sumy = new HashMap<>();
Map<String, Integer> ilosci = new HashMap<>();
for(Employee emp : emps) {
if(sumy.containsKey(emp.getJobTitle())) {
int suma = sumy.get(emp.getJobTitle());
sumy.put(emp.getJobTitle(), suma + emp.getSalary());
int ile = ilosci.get(emp.getJobTitle());
ilosci.put(emp.getJobTitle(), ile + 1);
} else {
sumy.put(emp.getJobTitle(), emp.getSalary());
ilosci.put(emp.getJobTitle(), 1);
}
}
for(String job: sumy.keySet()) {
int suma = sumy.get(job);
int ile = ilosci.get(job);
double srednia = suma / ile;
System.out.printf("%-32s | %2d | %8.2f%n", job, ile, srednia);
}
}
}
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