[Java] Stream API - Stream Zwischenverarbeitung

Zwischenverarbeitung streamen

Filtern Sie Werte nach festgelegten Bedingungen

import java.util.stream.Stream;
public class Main {
  public static void main(String[] args) {
    Stream.of(
      "https://qiita.com/",
      "Neko",
      "CAT",
      "https://www.amazon.co.jp/",
      "https://ja.wikipedia.org/wiki/Neko_(%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2)"
    )
      .filter(s -> s.startsWith("https://"))
      .forEach(System.out::println);
/*
https://qiita.com/
https://www.amazon.co.jp/
https://ja.wikipedia.org/wiki/Neko_(%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2)
*/
  }
}

Verarbeiten Sie den angegebenen Wert

import java.util.stream.Stream;
public class Main {
  public static void main(String[] args) {

    Stream.of("Munchkin", "Siamese", "Persian", "Scottish Fold", "Tama")
    .map(s -> s.length())
    .forEach(System.out::println); //8 7 7 13 4
  }
}
import java.util.stream.Stream;
public class Main {
  public static void main(String[] args) {
    Stream.of("Munchkin", "Siamese", "Persian", "Scottish Fold", "Tama")
    .mapToInt(s -> s.length())
    .forEach(System.out::println); //8 7 7 13 4
  }
}

Verarbeiten Sie ein bestimmtes Element

//Konvertieren Sie eine zweidimensionale Array-Liste in ein eindimensionales Array
import java.util.Arrays;
public class Main {
  public static void main(String[] args) {

    var list = new String[][] {
      { "neko", "nekko", "nekkko" },
      { "inu", "innu" },
      { "tori", "torri" }
    };
    //Übergeben Sie ein verschachteltes Array mit flatMap und Arrays.Stream mit Stream-Methode
    //Durch Verbinden mit flatMap zu einem eindimensionalen Array reduzieren
    Arrays.stream(list)
      .flatMap(v -> Arrays.stream(v))
      .forEach(System.out::println);
     // neko nekko nekkko inu innu tori torri
    }
}
//Extrahieren Sie das Akronym, wenn Sie ein zweidimensionales Array reduzieren
import java.util.Arrays;
public class Main {
  public static void main(String[] args) {

    var list = new String[][] {
      { "neko", "nekko", "nekkko" },
      { "inu", "innu" },
      { "tori", "torri" }
    };

    Arrays.stream(list)
    .flatMap(v -> Arrays.stream(v).map(str -> str.substring(0, 1)))
    .forEach(System.out::println);
    //n n n i i t t
    }
}

Elemente sortieren

import java.util.stream.Stream;
public class Main {
  public static void main(String[] args) {

    Stream.of("Munchkin", "Siamese", "Persian", "Scottish Fold", "Tama")
    .sorted()
    .forEach(System.out::println);
// Munchkin
// Persian
// Scottish Fold
// Siamese
// Tama
  }
}
import java.util.stream.Stream;
import java.util.Comparator;

public class Main {
  public static void main(String[] args) {

    Stream.of("Munchkin", "Siamese", "Persian", "Scottish Fold", "Tama")
    .sorted((str1, str2) -> str1.length() - str2.length())
    .forEach(System.out::println);
    // Tama
    // Siamese
    // Persian
    // Munchkin
    // Scottish Fold

    /*Wörterbuch in umgekehrter Reihenfolge in der Komparatorschnittstelle
     Stream.of("Munchkin", "Siamese", "Persian", "Scottish Fold", "Tama")
     .sorted(Comparator.reverseOrder())
     .forEach(System.out::println);
    */
  }
}

Extrahieren Sie das m-te Element

//Verwenden Sie Überspringen, um 4 Elemente zu überspringen, und begrenzen Sie, um 10 Elemente daraus zu extrahieren.
import java.util.stream.IntStream;
public class StreamLimit {
  public static void main(String[] args) {
    IntStream.range(1, 20)
      .skip(4)
      .limit(10)
      .forEach(System.out::println); //5,6,7,8,9,10,11,12,13,14
  }
}

Entfernen Sie die Werte von Anfang an, während Sie die Bedingungen erfüllen

import java.util.stream.IntStream;
public class StreamDrop {
  public static void main(String[] args) {
    IntStream.of(-2, -5, 0, 3, -1, 2)
      .dropWhile(i -> i < 0)
      .forEach(System.out::println); //0,3,-1,2
  }
}

Extrahieren Sie nur die Werte, die die Bedingungen von Anfang an erfüllen

import java.util.stream.IntStream;
public class StreamTake {
  public static void main(String[] args) {
    IntStream.of(-2, -5, 0, 3, -1, 2)
      .takeWhile(i -> i < 0)
      .forEach(System.out::println); //-2,-5
  }
}

Überprüfen Sie den mittleren Status des Streams

//Stream-Inhalt vor und nach dem Sortieren ausgeben
import java.util.stream.Stream;
public class StreamPeek {
  public static void main(String[] args) {
    Stream.of("Fisch", "Schmutz", "Echo", "Kinmokusei")
      .peek(System.out::println)
      .sorted()
      .forEach(System.out::println);
  }
}

Entfernen Sie doppelte Werte

import java.util.stream.Stream;
public class Main {
  public static void main(String[] args) {
    Stream.of("Katze", "Katze", "Nekko", "Katze", "KatzeKatze")
      .distinct()
      .forEach(System.out::println);
    //Katze
    //Katze
    //Nekko
    //Katze
  }
}
import java.util.HashSet;
import java.util.stream.Stream;

public class StreamDistinctObj {

  public static void main(String[] args) {
    var set = new HashSet<String>();
    Stream.of(
        new Person("Yamada", 40),
        new Person("Takano", 30),
        new Person("Okawa", 35),
        new Person("Yamada", 45)
      )
      //Fügen Sie HashSet in der Filtermethode einen Wert hinzu
      //HashSet.Die Methode add gibt false zurück, wenn der Wert nicht hinzugefügt werden konnte (duplizieren).

      .filter(p -> set.add(p.name))
      .forEach(System.out::println);
  }
}
public class Person {
  public String name;
  public int age;

  public Person(String name, int age) {
    this.name = name;
    this.age = age;
  }
  @Override
  public String toString() {
    return String.format("%s(%d Jahre alt)", this.name, this.age);
  }
}

Grundlegende Stream-Konvertierung

//Konvertierung von IntStream zu DoubleStream
import java.util.stream.IntStream;
public class Main {
  public static void main(String[] args) {
    IntStream.range(1, 5)
      .asDoubleStream()
      .forEach(System.out::println);
      //1.0 2.0 3.0 4.0
  }
}

Gegenseitige Konvertierung zwischen Streams vom Basistyp und Referenztyp

//IntStream zum Streamen<Integer>Umstellung auf
import java.util.stream.IntStream;
public class Main {
  public static void main(String[] args) {
    IntStream.range(1, 5)
      .boxed()
      .forEach(System.out::println);
      //1 2 3 4
      
    IntStream.range(1, 5)
      .mapToObj(Integer::valueOf)
      .forEach(System.out::println);
      //1 2 3 4
  }
}
//Stream<Integer>In IntStream konvertieren
import java.util.stream.Stream;
public class StreamUnboxed {
  public static void main(String[] args) {
    Stream.of(1, 2, 3, 4)
      .mapToInt(i -> i) //Unboxing Integer → int
      .forEach(System.out::println); //1 2 3 4
    }
}

Recommended Posts

[Java] Stream API - Stream Zwischenverarbeitung
[Java] Stream API Zwischenoperation
Java Stream API
Zwischenverarbeitung streamen
[Java] Stream-Verarbeitung
Datenverarbeitung mit der Stream-API von Java 8
[Java] Stream API / Map
Java Stream API Spickzettel
[Java] Einführung in die Stream-API
[java8] Um die Stream-API zu verstehen
[Einführung in Java] Informationen zur Stream-API
Ich habe versucht, die Java8 Stream API zu verwenden
Grundlegender Verarbeitungsablauf von Java Stream
Java 8 ~ Stream API ~ startet jetzt
Versuchen Sie es mit der Stream-API in Java
Probieren Sie Java 8 Stream aus
Heutzutage Java Lambda Expressions und Stream API
Java-Thread-Verarbeitung
Probieren Sie verschiedene Java Stream API-Methoden aus (jetzt)
Java-String-Verarbeitung
Java 8 studieren (Stream)
Java-Übung "Intermediate"
[Java] Multithread-Verarbeitung
Java Stream-Beendigung
Grundlagen der Stream-API
Java 9 Optional :: stream
Java iterativer Prozess
[Java] Stream Collectors Hinweis
Packen Sie die API-Antwort (Java)
[Java] Stream API-Stream-Generierung
Stream-API (Collectors-Klasse)
Stream-API-Zuordnungsmethode
Fehlerbehebung bei der Docker-Client Java API
Zabbix API in Java
Informationen zur Java8-Stream-Reduzierung
JAVA-Konstruktoraufrufverarbeitung
Java zufällig, verschiedene Verarbeitung
Grobe Zusammenfassung des Java8-Streams
Listenverarbeitung zum Verstehen mit Bildern --java8 stream / javaslang-
[Inhouse-Lernsitzung] Java-Grundlagen - Lambda-Ausdruck und Stream-API - (13.07.2017)
[Für Anfänger] So bedienen Sie die Stream-API nach Java 8
Verwenden Sie Java-Lambda-Ausdrücke außerhalb der Stream-API
Die Java 8 Stream-Verarbeitung kann bisher weggelassen werden!
Es ist noch nicht zu spät? Beispiel für die Verwendung aller Methoden der Java Stream-API (Zwischenoperation)
Informationen zur Implementierung der Zusammenführungsverarbeitung einschließlich der Sortierfunktion der Stream-API
[Java11] Stream-Zusammenfassung - Vorteile von Stream -
[Ein Muss für einen Java-Ingenieurlehrling] Verwendung der Stream-API
Behandeln Sie Ausnahmen kühl mit Java 8-Lambda-Ausdrücken und der Stream-API
[Java] Implementierungsmethode für die Timer-Verarbeitung
Java Stream kann nicht wiederverwendet werden.
Gemessene Parallelverarbeitung mit Java
Listenverarbeitung zum Verstehen mit Bildern --java8 stream / javaslang --bonus
Grundlegendes zur Java-Parallelverarbeitung (Einführung)
[Java11] Stream Usage Summary -Basics-
Konvertieren Sie ein zweidimensionales Array mit der Java 8 Stream-API in das CSV-Format
Java Basic Learning Content 8 (Java-API)
Java-Anwendung für Anfänger: Stream
Zusammenfassung der Java-Fehlerverarbeitung