2017-10-21 63 views
-2

il y a un tableau de chaînesComment trouver l'index d'un élément dans une collection de chaînes en utilisant un flux en Java?

Integer index = null; 
String [] re = {"one", "two", "three"}; 
     Integer size = re.length; 
     for(int i = 0; i < size; i++) { 
      if(re[i].equals(text)) { 
        resultIndex = i; 
      } 
     } 

comment réécrire ce code avec api flux d'utilisation?

+3

Bienvenue sur Stack Overflow! S'il vous plaît, prenez le [tour], jetez un coup d'œil, et lisez [help], en particulier [* Comment poser une bonne question? *] (/ Help/how-to-ask) Qu'avez-vous essayé? Qu'est-ce que votre recherche a révélé? Pourquoi spécifiquement en utilisant un flux? Si c'est pour un travail en classe, votre enseignant ou votre cours aura passé en revue les informations nécessaires, reportez-vous au matériel et aux notes de votre classe. –

+2

Le point d'utiliser Streams ici est? – Tom

+0

Désolé. J'ai édité le poste – DmitryJS

Répondre

0

Chaque fois que vous devez utiliser l'index de boucle, l'équivalent de flux commence généralement IntStream.range. Dans ce cas, le code ressemble

OptionalInt index = IntStream.range(0, re.length).filter(i -> re[i].equals(text)).findFirst(); 

En dépit de répondre à votre question, je ne pense pas qu'il est raisonnable que vous avez demandé de passer par le remplacement de toutes les boucles par flux. Il y a beaucoup de cas où une boucle for est beaucoup plus simple à lire et à écrire.

Notez également que dans ce cas il n'y a pas besoin d'utiliser une boucle ou cours d'eau du tout parce que vous pouvez simplement faire

int index = Arrays.asList(re).indexOf(text); 
+1

oui, merci, dans ce cas im remplacer mon code à ..indexOf() – DmitryJS

+0

Pas de problème, je suis heureux d'avoir pu aider. –