>  기사  >  Java  >  Java 컬렉션 스트림

Java 컬렉션 스트림

王林
王林원래의
2024-08-30 15:47:35546검색

Java Stream은 컬렉션 구성 요소 중 하나이며 해당 항목을 내부적으로 반복하기 위한 API입니다. 즉, Java Iterator 또는 Java와 같은 Java 컬렉션 반복 기능을 사용하려는 경우 자체 요소를 반복할 수 있습니다. Java 반복 가능 인터페이스가 있는 for-each 루프는 요소 반복을 구현해야 하며 스트림은 데이터 구조 메모리의 값을 변경하지 않으며 파이프라인 구조와 같은 기본 공간을 할당할 수 있는 기본 메소드를 사용하여 결과를 제공합니다. 원하는 출력을 만들어 보세요.

Java 컬렉션 스트림 안내

첫 번째는 컬렉션 인터페이스에 스트림 메서드를 도입하는 데 있어 아마도 가장 중요한 주장일 것입니다. 항목 목록이 표시되면 스트림 데이터가 특정 스트림으로 열립니다. 가장 간단하고 가장 널리 사용되는 작업은 forEach() 루프로, 스트림 요소를 통해 실행되고 각 요소에 대해 지정된 함수를 호출합니다. 이 방법 역시 널리 사용되는 방법으로 Iterable, Map 등의 클래스에 포함되어 있습니다. 스트림은 데이터 래퍼에 지나지 않으며 데이터를 저장하거나 기본 데이터 소스에 영향을 미치기를 원하지 않습니다. 많은 유용한 고성능 작업이 스트림에 의해 지원됩니다. 스트림은 순차적으로 또는 병렬로 수행할 수 있는 람다로 간결하게 설명됩니다. 스트림은 데이터를 저장하지 않기 때문에 데이터 구조가 아닙니다. 또한 기본 데이터 원본을 변경하지 않습니다. 데이터가 스트림과 병렬로 정렬되어 있으면 데이터가 순차적으로 처리되는지 또는 시퀀스 순서가 아닌지는 중요하지 않습니다. 구현은 Stream의 만남 순서를 유지합니다. 일반적으로 사용된 Spliterator에 CONCURRENT 속성이 있는 경우 스트림은 스레드로부터 안전합니다. 스트림 API는 파이프라인의 각 단계에 대한 여러 계약을 정의하며, 그 중 하나라도 위반되면 예상치 못한 동작이나 예외가 발생할 수 있습니다.

무료 소프트웨어 개발 과정 시작

웹 개발, 프로그래밍 언어, 소프트웨어 테스팅 등

컬렉션 인스턴스의 스트림 인스턴스

스트림은 컬렉션, 배열 및 기타 입력/출력 채널에서 입력을 가져옵니다. 이는 입력을 함수에 전달하는 방법입니다. 새로운 개체 생성 절차를 통해 개체가 생성되고 특정 함수 호출에 할당됩니다. 또한 Streams는 파이프라인 아키텍처에 따라 출력 결과만 제공했으며 해당 방법은 값과 실제 데이터 구조 프로세스를 변경하지 않습니다. 또한 컬렉션은 주로 다른 루프와 외부 루프의 도움으로 반복되지만 스트리밍에 사용할 때는 특정 루프 작업의 도움으로 내부적으로 반복해야 하며 대부분 외부 루프가 필요하지 않습니다. Java 8의 Stream API의 터미널 메소드 중 하나는 데이터 수집을 위한 Collect() 메소드입니다. 이를 통해 Stream 인스턴스에 포함된 데이터 구성 요소를 사용하여 변경 가능한 접기 작업을 수행할 수 있습니다(예: 요소를 데이터 구조로 다시 패키징하고 추가 논리를 적용하고 연결하는 등). Collectors 클래스에서는 사전 정의된 모든 구현을 찾을 수 있습니다. 더 나은 가독성을 얻으려면 다음 정적 가져오기를 사용하는 것이 일반적입니다. 모든 Stream 항목을 List 객체로 집계하려면 toList 수집기를 사용하세요. 알아야 할 중요한 점은 이 기술을 사용하면 특정 목록 구현을 가정할 수 없다는 것입니다. 이에 대한 더 큰 제어를 원할 경우 대신 toCollection을 사용할 수 있습니다. 모든 스트림 항목을 Set 인스턴스로 집계하려면 toSet 수집기를 사용하세요. 이 방법을 사용하면 특정 Set 구현을 가정할 수 없다는 점을 인식하는 것이 중요합니다. 이에 대한 더 큰 제어를 원할 경우 컬렉션을 대신 사용할 수 있습니다. 세트에는 중복된 요소가 없습니다. 컬렉션에 동일한 구성 요소가 포함된 경우 해당 구성 요소는 최종 세트에 한 번만 나타납니다. 스트림 항목을 Map 인스턴스로 집계하려면 toMap 수집기를 사용하세요. 이를 위해서는 keyMapper와 valueMapper라는 두 가지 함수가 필요합니다. Stream 요소에서 Map 키를 추출하려면 keyMapper를 사용하고, 특정 키와 연결된 값을 검색하려면 valueMapper를 사용합니다.

Java 스트림 생성

Java에서는 컬렉션을 사용하여 지정된 값에서 스트림 데이터를 생성하는 등 다양한 방법으로 스트림을 생성합니다. 또한 Stream의 도움으로 빈 공간을 계산하는 스트림 데이터를 사용하여 배열을 만듭니다. empty() 메소드는 빈 공간을 계산할 뿐만 아니라 Stream을 사용하여 Stream 데이터를 생성할 수도 있습니다. 빌더() 메소드. iterate() 메소드를 사용하면 Iterable이 인터페이스이고 기본 메소드 StreamSupport.Stream() 메소드를 제공하지 않고 Iterable 객체를 사용하여 스트림 데이터를 가져오기 때문에 무한한 스트림 데이터를 계산할 수 있습니다.

예시 #1

import java.util.*;
import java.util.stream.*;
class first {
private static <T> void methd(Iterable<T> itr)
{
Stream<T> str
= StreamSupport
.stream(itr.spliterator(),
false);
Iterator<T> its = str.iterator();
while (its.hasNext()) {
System.out.print(its.next() + " ");
}
}
public static void main(String[] args)
{
Iterable<String> itr
= Arrays.<em>asList</em>("Marina", "Adyar", "Parrys or Broadway","Tambaram","Gundy");
methd(itr);
}
}

샘플 출력:

Java 컬렉션 스트림

In the above example we used Stream Instance creation and also we can use the StreamSupport class for accessing the stream() method. Like that we can use the Iterator<> interface for accessing the stream inputs and assign it to the variable. In the main method using Iterable<> interface we can access the values as Arrays and asList() method.

Example #2

import java.util.*;
import java.util.stream.*;
class Second {
private static <T> void methd(Iterator<T> itr)
{
Spliterator<T> splititr
= Spliterators
spliteratorUnknownSize(itr,
Spliterator.NONNULL);
Stream<T> str
= StreamSupport.<em>stream</em>(splititr, false);
Iterator<T> its = str.iterator();
while (its.hasNext()) {
System.<em>out</em>.print(its.next() + " ");
}
}
public static void main(String[] args)
Iterator<String> itre = Arrays
.asList("Thiruvanmaiyur", "Perungalathur", "TNagar","Central","Besant Nagar")
.iterator();
methd(itre);
}
}

Sample Output:

Java 컬렉션 스트림

In the above example, we used an additionally Spliterator class for accessing the Stream inputs using Iterator interface we can access the Array List inputs using the asList() method.

Conclusion

While streams aren’t used by everyone and don’t necessarily indicate a superior approach, free certificate courses can help developers understand this newer way of programming, which incorporates functional-style programming and lambda expressions for Java. It’s up to developers to determine whether to use functional or imperative programming styles, and by taking advantage of free certificate courses, they can learn how to effectively combine both ideas to enhance their programs with enough effort.

위 내용은 Java 컬렉션 스트림의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.