Heim > Java > javaLernprogramm > Was ist der Unterschied zwischen list.forEach() und list.stream().forEach() in Java?

Was ist der Unterschied zwischen list.forEach() und list.stream().forEach() in Java?

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Freigeben: 2023-04-24 22:07:06
nach vorne
1590 Leute haben es durchsucht

Zuallererst bestehen ihre Funktionen darin, jedes Element des Arrays zu durchlaufen und die Methode „accept()“ auszuführen, die die Parameter eingibt. Ihre Implementierungsmethoden sind jedoch unterschiedlich. In einigen spezifischen Fällen führt die Ausführung zu unterschiedlichen Ergebnissen.

In den meisten Fällen führen beide zu den gleichen Ergebnissen, wir werden jedoch einige subtile Unterschiede feststellen.

Übersicht

Erstellen Sie zunächst eine iterative Liste:

List<String> list = Arrays.asList("A","B","C","D");
Nach dem Login kopieren

Der direkteste Weg ist die Verwendung einer erweiterten for-Schleife:

for(String s : list"){
    //something
}
Nach dem Login kopieren
# 🎜🎜#Wenn wir funktionales Java verwenden möchten, können wir auch forEach() verwenden. Wir können dies direkt in der Sammlung tun:

Consumer<String> consumer = s -> {System.out::println};
list.forEach(consumer);
Nach dem Login kopieren

Alternativ können wir forEach() im Stream der Sammlung aufrufen:

list.stream().forEach(consumer);
Nach dem Login kopieren

Beide Versionen durchlaufen die Liste und geben „Alle“ aus Elemente:

ABCD ABCD

In diesem einfachen Beispiel gibt es keinen Unterschied in der von uns verwendeten forEach().

Difference

list.forEach() verwendet eine erweiterte for-Schleife

default void forEach(Consumer<? super T> action) {
      Objects.requireNonNull(action);
      for (T t : this) {
          action.accept(t);
      }
  }
Nach dem Login kopieren

list.stream().forEach(): Es konvertiert zuerst die Sammlung als Stream und iterieren Sie dann über den Stream der Sammlung eine Ausnahme# 🎜🎜 #
public class DeleteDifference {
   public static void main(String[] args) {
       List<String> list = Arrays.asList("A", "B", "C", "D");

       try {
           list.forEach(item -> {
               System.out.println(item);
               list.remove(0);
           });
       } catch (Exception e) {
           e.printStackTrace();
       }

       list.stream().forEach(item -> {
           System.out.println(item);
           list.remove(0); 
       });
   }
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen list.forEach() und list.stream().forEach() in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Aktuelle Ausgaben
Kann Java als Backend des Webs verwendet werden?
Aus 1970-01-01 08:00:00
0
0
0
Installieren Sie JAVA
Aus 1970-01-01 08:00:00
0
0
0
Java kann nicht installiert werden
Aus 1970-01-01 08:00:00
0
0
0
Ist das in der Java-Sprache?
Aus 1970-01-01 08:00:00
0
0
0
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage