Я читаю файл ввода:Как суммировать значения в Java Hashmap
Tuesday 50.40000000000001
Friday 35.5
Wednesday 51.5
Friday 46.49999999999999
Thursday 47.89999999999999
Friday 42.60000000000001
Tuesday 48.900000000000006
Thursday 47.300000000000026
Thursday 50.90000000000001
Wednesday 52.1
Monday 52.50000000000001
Thursday 53.1
Tuesday 49.000000000000014
Monday 36.900000000000006
Wednesday 46.70000000000001
Thursday 51.30000000000002
Monday 49.99999999999998
Я хочу, чтобы фильтровать каждый день и суммировать все свои ценности - то есть добавить все значения в понедельник, затем по вторникам и так далее. Как я могу сделать это на Java. Я попытался использовать hashmap с кодом ниже, но я не смог это сделать. Мне нужна помощь, пожалуйста.
public static void main(String[] args) throws NumberFormatException, IOException
{
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("weekly.txt")));
String line;
while ((line = br.readLine()) != null) {
String splittedWord []= line.split("\\s+");
String key = splittedWord[0];
map.put(key, new ArrayList<Double>());
for(int i=1;i<splittedWord.length;i++){
double temp = Double.parseDouble(splittedWord[i]);
if(map.containsKey(key)){
map.get(key).add(temp); // adding keys and values to the encode hashmap O(n)
}
}
}
System.out.println("The size of encodeMap is " + map.size());
Iterator test = map.entrySet().iterator();
while (test.hasNext()) {
Map.Entry pair = (Map.Entry)test.next();
System.out.println(pair.getKey() + " " + pair.getValue());
test.remove(); // avoids a ConcurrentModificationException
}
}
где ваша карта определяется? Что это такое? –
private static HashMap> map = new HashMap >(); Это наверху. –
Я бы поменял его на 'HashMap', а затем 'if (! Map.containsKey (key)) {map.put (key, temp);} else {map.get (key) + temp} ' –