Technologieaustausch

Wie verwende ich die Java Stream API, um Erfassungsvorgänge zu vereinfachen?

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Wie verwende ich die Java Stream API, um Erfassungsvorgänge zu vereinfachen?

Hallo zusammen, ich bin der Herausgeber von Weizhuan Taoke System 3.0 und außerdem ein Programmierer, der im Winter keine langen Unterhosen trägt, aber bei kaltem Wetter trotzdem cool sein muss!

Die Java Stream API ist ein neues abstraktes Konzept, das in Java 8 für funktionale Operationen an Sammlungsobjekten eingeführt wurde. Es ermöglicht uns, Erfassungsdaten einfacher und besser lesbar zu verarbeiten, einschließlich Filterung, Zuordnung, Filterung, Sortierung und anderer Vorgänge.

Stream-Erstellung und grundlegende Vorgänge

Mit der Stream-API können wir einen Stream auf verschiedene Arten erstellen, z. B. durch Sammlungskonvertierung, Array-Konvertierung usw. Hier sind einige grundlegende Beispiele für den Stream-Betrieb:

package cn.juwatech.stream;

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class StreamExample {

    public static void main(String[] args) {
        List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "David", "Eva");

        // 筛选名字长度大于3的人,并转换为大写
        List<String> filteredNames = names.stream()
                .filter(name -> name.length() > 3)
                .map(String::toUpperCase)
                .collect(Collectors.toList());

        System.out.println("Filtered and transformed names: " + filteredNames);

        // 计算所有名字长度的总和
        int totalLength = names.stream()
                .mapToInt(String::length)
                .sum();

        System.out.println("Total length of all names: " + totalLength);

        // 判断集合中是否存在名字以'A'开头的
        boolean anyStartsWithA = names.stream()
                .anyMatch(name -> name.startsWith("A"));

        System.out.println("Any name starts with 'A'? " + anyStartsWithA);
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33

Erweiterte Operationen von Stream

Zusätzlich zu den grundlegenden Filter-, Zuordnungs- und Reduziervorgängen bietet die Stream-API auch eine Fülle erweiterter Vorgänge wie Sortieren, Gruppieren, Deduplizieren usw. Hier sind einige Beispiele für erweiterte Operationen:

package cn.juwatech.stream;

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class AdvancedStreamOperations {

    public static void main(String[] args) {
        List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);

        // 对数字进行平方映射,然后筛选出大于20的数字,并按降序排序
        List<Integer> result = numbers.stream()
                .map(n -> n * n)
                .filter(n -> n > 20)
                .sorted((a, b) -> b - a)
                .collect(Collectors.toList());

        System.out.println("Result after mapping, filtering, and sorting: " + result);

        // 将字符串列表拼接成一个字符串
        List<String> words = Arrays.asList("Java", "Stream", "API", "is", "awesome");

        String concatenatedString = words.stream()
                .collect(Collectors.joining(" "));

        System.out.println("Concatenated string: " + concatenatedString);
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29

Parallele Stream-Operationen

Die Stream-API unterstützt auch die Parallelverarbeitung, was die Betriebseffizienz auf Multi-Core-CPUs deutlich verbessern kann.Wir können dies telefonisch tunparallel()Die Methode wandelt einen sequentiellen Stream in einen parallelen Stream um.

List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "David", "Eva");

// 并行处理:筛选名字长度大于3的人,并转换为大写
List<String> parallelFilteredNames = names.parallelStream()
        .filter(name -> name.length() > 3)
        .map(String::toUpperCase)
        .collect(Collectors.toList());

System.out.println("Parallel filtered and transformed names: " + parallelFilteredNames);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

Abschluss

Durch die Einleitung dieses Artikels verfügen wir über ein tiefgreifendes Verständnis der grundlegenden Verwendung der Java Stream API und ihrer erweiterten Funktionen. Die Stream-API kann nicht nur den Erfassungsvorgangscode vereinfachen, sondern auch die Lesbarkeit und Wartbarkeit des Codes verbessern. Sie ist ein unverzichtbarer Bestandteil der modernen Java-Entwicklung.

Es wurde vom Herausgeber von Micro-Earning Taoke System 3.0 erstellt und muss ein qualitativ hochwertiges Produkt sein. Bitte geben Sie beim Nachdruck die Quelle an!