Filtrer un élément par une en utilisant un filtre ()

Chaque Lee:

J'amorcera ma question:

J'ai un tableau:

int[] arr = { 1,2,3,4,5 };, Je veux stocker des valeurs à un List<Integer> licomme celui - ci:14,13,12,11,10

Comment ces valeurs sont venus à la liste licomme ç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 sumreposer à 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.

aussi:

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

Je suppose que tu aimes

Origine http://43.154.161.224:23101/article/api/json?id=225736&siteId=1
conseillé
Classement