Räkna ut medelvärde av liknande objekt i treemap
Jag försöker lista ut hur jag ska få ut ett medelvärde ur min values(objekt) i en treemap och presentera resultatet i en string array.
Weatherdata objektet har dessa egenskaper
public class WeatherData {
LocalDate date;
String time;
String temp;
String quality;
Det ser ut såhär i treemapen. Key är Datum + klockslag som string. Value är objektet (datum,klockslag,temp,kvalitet)
(Map<String,WeatherData>)
--------Key------- ----------Value-------------
1946-01-01 07:00:00 : 1946-01-01, 07:00:00, -1.8, G
1946-01-01 13:00:00 : 1946-01-01, 13:00:00, -1.0, G
1946-01-01 18:00:00 : 1946-01-01, 18:00:00, -1.9, G
1946-01-02 07:00:00 : 1946-01-02, 07:00:00, -1.7, G
1946-01-02 13:00:00 : 1946-01-02, 13:00:00, -0.2, G
1946-01-02 18:00:00 : 1946-01-02, 18:00:00, -1.3, G
1946-01-03 07:00:00 : 1946-01-03, 07:00:00, -1.0, G
1946-01-03 13:00:00 : 1946-01-03, 13:00:00, -0.1, G
1946-01-03 18:00:00 : 1946-01-03, 18:00:00, -1.2, G
I string arrayen så ska man endast se medeltemperaturen för varje datum, alltså ska den presenteras såhär:
1946-01-01: -1.56
1946-01-02: -1.06
1946-01-03: -0.76
Det jag försöker göra är att plocka ut alla values till en objekt array(objektList), men om objektet redan finns i arrayen vill jag enbart addera objektets temp till objektet som finns i arrayen. Jag vet att jag inte får ut medelvärde just nu, vill bara se om dom lyckas summeras ihop, får lista ut hur jag gör med medelvärde senare.
for (Map.Entry<String,WeatherData> entry : subMap.entrySet()) {
WeatherData value = entry.getValue();
if(!objektList.contains(value.date)){
objektList.add(value);
}else{
for(int i = 0;i<objektList.size();i++){
if(objektList.get(i).date.equals(value.date)){
objektList.get(i).temp += value.temp;
}
}
}
}
Sedan för jag över det som finns i objekt arrayen till en string arrayen för att få ut rätt utskrift
//Till string lista
for(int i = 0; i < objektList.size();i++){
stringList.add(objektList.get(i).date.toString() +": " + objektList.get(i).temp);
}
Men det ser ut såhär vid utskrift, alltså är det något jag missar när jag försöker överföra till objekt arrayen.
1946-01-01: -1.8
1946-01-01: -1.0
1946-01-01: -1.9
1946-01-02: -1.7
1946-01-02: -0.2
1946-01-02: -1.3
...osv
Någon som kan få mig att förstå vad jag missar ? Är det kanske onödigt att överföra till en objekt array? Går det att genomföra beräkningarna redan i treemap på något sätt?