Пример:
Я хочу суммировать элементы внутри каждого ключа, который в основном представляет собой ArrayList элементов "двойные числа". Гуава ArrayListMultimap объявлен следующим образом:
ListMultimap <String, Double> multimap = LinkedListMultimap.create();
и отображается так: «3 ключа ArrayList»:
HH_0=[0.1, 0.4, 0.2, 0.3, 0.1],
HH_1=[0.1,0.2],
HH_2=[0.1]
Суммирование должно храниться в массиве или в любой простой структуре, например, такой:
array_sum=[1.1,0.3,0,1]
фактический размер multimap равен 8 , а не 3 , потому что если любой ключ имеет более одного значения в своем массиве, означает, что ключ является дубликатом, и это причина использования multimap из Guava , он может хранить дублированные ключи с несколькими (разными или одинаковыми) значениями в ArrayList с наоборот в случае простого Hashmap.
Мое эссе: Я извлек ключи в array_Str из Strings для сравнения. Мы предполагаем, что длина требуемого array_sum [] уже запущена с 3:
double sum = 0.0;
String array_Str = {"HH_0","HH_1","HH_2"};
for (int i = 0; i < array_sum.length; i++) {
for (Entry<String, Double> entry : multimap.entries()) {
if( entry.getKey().equals(array_sum[i])) {
sum=sum+ entry.getValue();
}
}
array_sum[i]=sum;
}
Любое руководство очень ценится.