Próbuję rozwiązać pewne zadanie. Otóż wczytuję z pliku csv dane, które wygladają tak:
Rok,Kwartal,Miesiac,Tydzien,DzienT,Dzien,Data,Swieto,Produkt_ID,Kod,Producent,Grupa_produktowa,Kategoria,Miasto,Wojewodztwo,Region,Potencjal,Platnosc,Kanal,Ilosc,Cena,cena_sprzedazy,Koszt_zm,Koszt_st,Marza_br,Promocja,Powiat_ID,Wojew_ID
2004,1,1,0,4,1,01 stycznia 2004,T,5,ER7448C,Electrolux,Lodówki,AGD,Jelenia Góra,Dolnośląskie,Śląsk,Duży,,,,"952,00 zł",,"0,0 zł","476,0 zł",,,6,1
2004,1,1,0,4,1,01 stycznia 2004,T,15,WM08A260PL,Simens,Pralki,AGD,Jelenia Góra,Dolnośląskie,Śląsk,Duży,,,,"1 359,00 zł",,"0,0 zł","509,6 zł",,,6,1
2004,1,1,0,4,1,01 stycznia 2004,T,20,21PT182004,Philips,Telewizory,RTV,Jelenia Góra,Dolnośląskie,Śląsk,Duży,,,,"685,00 zł",,"0,0 zł","308,3 zł",,,6,1
2004,1,1,0,4,1,01 stycznia 2004,T,30,MHC-RG270,Sony,Hi-Fi,Audio,Jelenia Góra,Dolnośląskie,Śląsk,Duży,,,,"758,00 zł",,"0,0 zł","303,2 zł",,,6,1
Utworzyłem klasę, która przechowuje wszystkie kolumny.
public class AGD_COMPLEX {
String rok, kwartal, miesiac, tydzien, dzien, produkt_id, powiat_id, wojew_id, data, kod, producent, grupa_produktowa, kategoria, miasto, wojewodztwo, region, potencjal, platnosc, kanal, ilosc, cena, cena_sprzedazy, koszt_zm, koszt_st, marza_br, promocja;
//gettery i settery dalej
Napisałem coś takiego, żeby zaimportować dane i wyświetlić.
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class Zadanie {
public static void main(String[] args) throws IOException {
String csvFile = "src/AGD.csv";
String line;
String cvsSplitBy = ",";
try (BufferedReader br = new BufferedReader(new FileReader(csvFile))) {
while ((line = br.readLine()) != null) {
// use comma as separator
String[] csv = line.split(cvsSplitBy);
AGD_COMPLEX agd_complex = new AGD_COMPLEX();
agd_complex.grupa_produktowa=csv[11];
agd_complex.platnosc=csv[17];
agd_complex.wojewodztwo=csv[14];
agd_complex.miesiac=csv[2];
agd_complex.rok=csv[0];
agd_complex.cena=csv[20];
List<AGD_COMPLEX> list = new ArrayList<>();
list.add(agd_complex);
System.out.println(list.toString());
//System.out.println(agd_complex.toString());
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
Teraz chciałbym pogrupować dane w taki sposób, ze np. dla wszystkich pralek z takiego województwa obliczyć średnią cenę. Jak mogę to zrobić?