2 votes

Comment trouver la somme des colonnes d'un tableau en utilisant les flux Java ?

J'ai un tableau d'entiers en 2D :

int arr[][] = new int[rows][columns];

La somme de la nième rangée peut être trouvée en utilisant :

int rSum=Arrays.stream(arr[n]).sum();

Comment puis-je trouver la somme de la colonne pth ?

int cSum=Arrays.stream(arr[][p]).sum();

La ligne ci-dessus ne fonctionne pas.

3voto

Viacheslav Vedenin Points 31594
    int arr[][] = new int[][] {
            {1,2},{3,4},{5,6}
    };
    int s = Arrays.stream(arr).mapToInt(a -> a[1]).sum();
    System.out.println(s); // 12

2voto

CommuSoft Points 6439

Vous pouvez mapper chaque ligne du p -ème élément :

int cSum = Arrays.stream(arr).mapToInt(row -> row[p]).sum();

Le fonctionnement est le suivant : nous construisons d'abord un flux à partir du fichier arr . Ce flux contiendra le rangs de la "matrice". Alors, pour chaque row , nous mapToInt Il s'agit d'un int : le p -ième élément de cette ligne. Ensuite, nous sum(..) le flux de int à la somme.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X