Supposons que nous ayons une liste dans Java contenant des cartes telles que ceci: Je souhaite ajouter toutes les quantités à une seule variable afin que mon résultat pour mon cas sera total de maquette = 6400. Donc, j'écris ceci: p> mais il ne semble pas fonctionner bien. Avez-vous une idée pourquoi? P> p>
4 Réponses :
Vous pouvez d'abord le premier mapper code> à double et appelez
.sum () code>
import java.util.*; public class SO58133962 { public static void main(String[] args) { List<Map<String,Integer>> nameToCosts = new ArrayList<>(); Map<String,Integer> one = new HashMap<>(); one.put("322108888",2900); Map<String,Integer> two = new HashMap<>(); two.put("321979826",3900); nameToCosts.add(one); nameToCosts.add(two); double sum = nameToCosts.stream().map(Map::values).flatMap(Collection::stream).mapToDouble(Integer::doubleValue).sum(); System.out.println(sum); } } This should work !
Il n'est pas nécessaire d'utiliser des références de méthodes pour tout. .flatmap (m -> m.values (). Stream ()) code> est plus simple que
.map (carte :: valeurs) .flatmap (collection :: ruisseau) code> ...
Je ne comprends pas pourquoi avez-vous besoin de 2 cartes, puis de les ajouter à une liste lorsque les cartes peuvent définir plusieurs paires de valeurs de clé.
Merci pour l'entrée Ashvin, j'essayais simplement d'utiliser la question initiale. Supposons que nous ayons une liste dans Java contenant des cartes comme ceci code>
Vous pouvez simplement itération de l'arrayage, obtenir l'objet Carte.
Depuis l'objet de la carte, vous pouvez obtenir la valeur de la touche "montant". Exemple de travail complet - P> class Solution {
public static void main(String[] args) {
ArrayList<HashMap> list = new ArrayList<>();
HashMap<String, Integer> map = new HashMap<>();
map.put("checkno", 322108888);
map.put("amount", 2500);
list.add(map);
map = new HashMap<>();
map.put("checkno", 321979826);
map.put("amount", 3900);
list.add(map);
int amount = 0;
for (int i = 0; i < list.size(); i++)
amount += (int) list.get(i).get("amount");
System.out.println(amount);
}
}
Voici l'ensemble du programme que vous essayez.
pojo checkdata p> } p> classe principale p>
foreach accepter le consommateur, le consommateur ne renvoie rien.
Est-ce que ce json ou une carte?
Lisez Javadocs, cette question affiche la recherche de base que ce soit et je pense que cela devrait être fermé à cause de cela.
carte, désolé pour la faute de frappe
Arrays.stream (ArrayofchecketObject) .Maptodouble (CheckoutObj ect :: Montant) .sum () Code>