내 연락처 정보
우편메소피아@프로톤메일.com
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Java Stream API를 사용하여 수집 작업을 단순화하는 방법은 무엇입니까?
안녕하세요 여러분, 저는 Weizhuan Taoke System 3.0의 편집자이자 겨울에는 긴 내복을 입지 않지만 추운 날씨에는 시원해야 하는 프로그래머이기도 합니다!
Java Stream API는 컬렉션 객체에 대한 기능적 스타일 작업을 위해 Java 8에 도입된 새로운 추상 개념입니다. 이를 통해 필터링, 매핑, 필터링, 정렬 및 기타 작업을 포함하여 더 간단하고 읽기 쉬운 방식으로 컬렉션 데이터를 처리할 수 있습니다.
Stream API를 사용하면 컬렉션 변환, 배열 변환 등 다양한 방법으로 Stream을 생성할 수 있습니다. 다음은 몇 가지 기본 스트림 작업 예입니다.
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);
}
}
기본 필터, 매핑 및 축소 작업 외에도 Stream API는 정렬, 그룹화, 중복 제거 등과 같은 다양한 고급 작업도 제공합니다. 다음은 고급 작업의 몇 가지 예입니다.
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);
}
}
Stream API는 병렬 처리도 지원하므로 멀티 코어 CPU의 운영 효율성을 크게 향상시킬 수 있습니다.전화해서 할 수 있어요parallel()
메서드는 순차 스트림을 병렬 스트림으로 변환합니다.
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);
이 기사의 소개를 통해 우리는 Java Stream API의 기본 사용법과 고급 기능을 심층적으로 이해했습니다. Stream API는 수집 작업 코드를 단순화할 뿐만 아니라 코드의 가독성과 유지 관리성을 향상시킬 수 있습니다. 이는 현대 Java 개발에 없어서는 안될 부분입니다.
소액적립 타오케시스템 3.0 편집자가 제작한 고급상품이므로 재인쇄시 출처를 꼭 밝혀주세요!