J'ai une carte de listes avec la clé = GROUP et la valeur = Liste les numéros stockés en tant que chaînes. Un élément est inférieurItérer et calculer des nombres dans une carte
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]
Ce que je dois faire est d'annuler (retirez) tous les nombres négatifs contre les points positifs, mais réduire le nombre + ve par cette valeur.
Dans l'exemple ci-dessus, 3 annulera contre -2 au large (premier -ve) laissant 1 que le total
par intérim puis +1 (total de la précédente) annule de -2 (à côté -ve) laissant -1 comme étant le total provisoire
-1 a carré contre 4 (côté + ve dans la liste), laissant 3 que le total
provisoire Ensuite, 3 carrés hors contre -2 (à côté -ve) laissant un total de 1.
Ainsi, tous les -ve sont éliminés de la liste, tout comme 3.0, 4.0 mais le premier élément est maintenant 1,0 (1,0 étant le dernier intermédiaire au total)
Séquence finale étant
[1.0, 2.0, 3.0, 3.0, 2.0, 2.0, 2.0, 2.0, 2.0]
Le code que je suis jusqu'à présent que totalise la liste ci-dessous.
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);
}
Total pour objet: GROUPE1 est 19,0
Je sais que nous ne devrions pas supprimer des éléments de la liste que nous parcourons, si la question est
A) Logique idéale pour supprimer les numéros dans la séquence ci-dessus. B) Dois-je créer une nouvelle liste et y ajouter des éléments pendant que je répète? C) Dois-je changer la collection que je stocke de la carte des listes à une structure de classe?
Merci - avoir à digérer votre réponse une bit. Éditera la faute de frappe concernant la suppression de la carte. – shinynewbike