J'amorcera ma question:
J'ai un tableau:
int[] arr = { 1,2,3,4,5 };
, Je veux stocker des valeurs à un List<Integer> li
comme celui - ci:14,13,12,11,10
Comment ces valeurs sont venus à la liste li
comme ça ??
Nos chiffres initiaux sont 1,2, 3, 4 et 5 . Nous pouvons calculer les sommes suivantes à l' aide de quatre des cinq entiers:
- Si nous additionnons tout sauf 1, notre somme est 14.
- Si nous additionnons tout sauf 2, notre somme est de 13.
- Si nous additionnons tout sauf 3, notre somme est de 12.
- Si nous additionnons tout sauf 4, notre somme est 11.
- Si nous additionnons tout sauf 5, notre somme est de 10.
Mon approche et les pensées:
Je pensais que je l' ai déjà un int [] arr
, donc je vais le faire pour écouter, maintenant je vais filter
à chacun des éléments un par un et se sum
reposer à chaque itération et ajoutera à la liste cette li
.
List<Integer> li = IntStream.range(0,1).filter(i-> arr[i] !=i).sum();
^^ Cela n'a pas fonctionné, je pense que je peux faire un peu de cela comme ci-dessous?
IntStream.range(0,1).filter(i-> filter(this is anotherfilter)).sum();
Je ne suis pas en mesure de comprendre cela, je veux faire ce problème avec des flux et java-8.
Vous pouvez le casser en deux étapes et effectuer l'opération:
int[] arr = { 1,2,3,4,5 };
int total = Arrays.stream(arr).sum(); // total of the array
List<Integer> output = Arrays.stream(arr)
.mapToObj(integer -> total - integer) // (total - current) value as element
.collect(Collectors.toList());