0
votes

Ajouter des valeurs à une seule variable de la matrice de cartes en Java

Supposons que nous ayons une liste dans Java contenant des cartes telles que ceci: xxx

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: xxx

mais il ne semble pas fonctionner bien. Avez-vous une idée pourquoi?


5 commentaires

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 ()


4 Réponses :


1
votes

Vous pouvez d'abord le premier mapper à double et appelez .sum () xxx


0 commentaires

1
votes
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 !

3 commentaires

Il n'est pas nécessaire d'utiliser des références de méthodes pour tout. .flatmap (m -> m.values ​​(). Stream ()) est plus simple que .map (carte :: valeurs) .flatmap (collection :: ruisseau) ...


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



0
votes

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". XXX PRE>

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);

    }
}


0 commentaires

1
votes

Voici l'ensemble du programme que vous essayez.

pojo checkdata xxx

}

classe principale xxx


0 commentaires