Commit 8ee0969d by Patryk Czarnik

grupowanie - początek

parent 504af2e6
package emps.obiektowo;
import java.io.FileNotFoundException;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
// Dla każdego joba obliczyć średnią pensję.
// To rozwiązanie nie ma optymalnej wydajności.
// Dla każdego joba od nowa przeglądamy całą listę pracowników. Dla naszych danych daje to (1+19) * 107 operacji.
public class Grupowanie0 {
public static void main(String[] args) throws FileNotFoundException {
List<Employee> emps = ObslugaCSV.readCSV();
Set<String> jobs = new HashSet<>();
for(Employee emp : emps) {
jobs.add(emp.getJobTitle());
}
for(String job : jobs) {
double suma = 0;
int ile = 0;
for(Employee emp : emps) {
if(emp.getJobTitle().equals(job)) {
suma += emp.getSalary();
ile++;
}
}
double srednia = suma / ile;
System.out.println(job + " " + ile + " " + srednia);
}
}
}
package emps.obiektowo;
import java.io.FileNotFoundException;
import java.util.*;
// Dla każdego joba obliczyć średnią pensję.
public class Grupowanie1 {
public static void main(String[] args) throws FileNotFoundException {
List<Employee> emps = ObslugaCSV.readCSV();
// dla każdego joba będziemy tu pamiętać sumę pensji
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 = 1. * suma / ile;
System.out.println(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