for-Schleife mit einer lambda-Ausdrucks in JAVA

Mein Code:

List<Integer> ints = Stream.of(1,2,4,3,5).collect(Collectors.toList());
ints.forEach((i)-> System.out.print(ints.get(i-1)+ " "));

out put:

1 2 3 4 5

meine Frage ist, warum muss ich i-1 innerhalb der get-Methode? ist i-1 verhindern, dass die out-of-boundary-Problem?

Nicht unter code verhält sich wie die for-Schleife die iteration?

(i)-> System.out.print(ints.get(i-1))

so ist obige code entspricht dieser

for(Ineger i:ints)
   System.out.print(ints.get(i));
  • da die Liste Indizes sind 0-basiert in Java. Aber +1 für Sie eine Frage über "Lambada s"!
  • Ich bin Recht cuz es prüft die Begrenzung der Liste auf diese Weise?
  • Wert von i ist jedes Mitglied der Liste
  • Ihre Letzte Codeausschnitt würde das gleiche problem haben: Sie tun müssen ints.get(i-1) zu bekommen, dass so gut funktionieren.
  • mögliche Duplikate von For-Schleife mit Lambda-Ausdrucks in JAVA
Schreibe einen Kommentar