У меня есть карта списков с ключом = GROUP и value = номера списков, хранящиеся в виде строк. Одним из элементов нижеИтерация и вычисление чисел на карте
GROUP1/[3.0, 4.0, 2.0, 3.0, 3.0, 2.0, 2.0, 2.0, 2.0, -2.0, -2.0, -2.0, 2.0]
Что я должен сделать, чтобы отменить выключение (удалить) все отрицательные числа против позитивов, но уменьшить анолит числа на этой величину.
В приведенном выше примере, 3 отменит с против -2 (первого -ve), оставляя +1, как промежуточный общая
Тогда +1 (всего от преда) отменит от -2 (следующего -ve) оставляя -1 в качестве временного общего
-1 имеет в квадрат против 4 (рядом анолит в списке), оставляя 3 как промежуточные общую
Затем, 3 квадраты с против -2 (следующего -ve), оставляя в общей сложности 1.
Таким образом, все -ve исключены из списка, а также 3.0, 4.0, но первый элемент теперь 1,0 (1,0 является последним промежуточный итог)
Заключительная последовательность будучи
[1.0, 2.0, 3.0, 3.0, 2.0, 2.0, 2.0, 2.0, 2.0]
код Я до сих пор просто суммирует списка, как показано ниже.
Map<String, List<String>> m = new HashMap<String, List<String>>();
...
for (Entry<String, List<String>> entry : m.entrySet())
{
System.out.println(entry.getKey() + "/" + entry.getValue());
double calc = 0;
for (String element:entry.getValue()){
//System.out.println(element);
calc = calc + new Double(element).doubleValue();
}
//if (calc > 0.0)
System.out.println("Total for Item: " + entry.getKey() + " is "+calc);
}
Итого товара: GROUP1 составляет 19,0
Я знаю, что мы не должны удалять элементы из списка перебираемого, поэтому вопрос является
) Идеальная логика для удаления чисел в приведенной выше последовательности.
B) Должен ли я создать новый список и добавить в него элементы, поскольку я повторяю?
C) Должен ли я изменить коллекцию, которую я храню из Карты списков, в некоторую структуру классов?
Благодарности - придется переваривать ответить на немного. Измените опечатку об удалении с карты. – shinynewbike