Java8 IntStream,LongStream,DoubleStream

4926 단어 자바
원본 링크:https://www.twle.cn/c/yufei/java8/java8-basic-intstream-longstream-doublestream.html
우 리 는 자바 8 중의 IntStream,LongStreamDoubleStream 의 사용 사례 를 제공 합 니 다.IntStream,LongStreamDoubleStream 은 각각 원시 int 류,원시 long 류 와 원시 double 류 를 나타 낸다.
이 세 개의 원시 흐름 류 는 스 트림 의 데 이 터 를 조작 하 는 데 대량의 방법 을 제공 하 는 동시에 해당 하 는 정적 방법 을 제공 하여 자신 을 초기 화 했다.
이 세 개의 원시 흐름 은 모두 java.util.stream 네 임 스페이스 에 있다.
java.util.stream.IntStream java.util.stream.IntStream 은 원시 정수 서열(sequence)이다.이 흐름 은 이 흐름 의 요소 순 서 를 수행 하거나 취 합 작업 을 병행 할 수 있 는 많은 방법 을 제공 합 니 다.예 를 들 어 max() 또는 average() 등 입 니 다.
집합 방법
방법.
설명 하 다.
rangeClosed(a,b)
하위 시퀀스[a,b)를 되 돌려 주 고 왼쪽 닫 고 또 엽 니 다.b 요 소 를 포함 하여 성장 단계 가 1 임 을 의미 합 니 다.
range(a,b)
하위 시퀀스[a,b)를 되 돌려 주 고 왼쪽 을 닫 고 오른쪽 을 열 면 b 가 포함 되 지 않 음 을 의미 합 니 다.
sum
모든 원소 의 총 계 를 계산 하 다
sorted
정렬 요소
이 방법 들 은 예 를 들 어 다음 과 같다.
IntStreamDemo.java
package cn.twle.util.stream;
import java.util.stream.IntStream;
public class IntStreamDemo {
    public static void main(String[] args) {
        System.out.println("--Using IntStream.rangeClosed--");
        IntStream.rangeClosed(13, 15).map(n->n*n).forEach(s->System.out.print(s +" "));
        System.out.println("
--Using IntStream.range--"); IntStream.range(13,15).map(n->n*n).forEach(s->System.out.print(s +" ")); System.out.println("
--Sum of range 1 to 10--"); System.out.print(IntStream.rangeClosed(1,10).sum()); System.out.println("
--Sorted number--"); IntStream.of(13,4,15,2,8).sorted().forEach(s->System.out.print(s +" ")); } }

실행 결 과 는 다음 과 같다.
--Using IntStream.rangeClosed--
169 196 225 
--Using IntStream.range--
169 196 
--Sum of range 1 to 10--
55
--Sorted number--
2 4 8 13 15  

LongStream java.util.stream.LongStream 은 원시 장정 형 값 서열(sequence)이다.이 흐름 은 이 흐름 의 요소 순 서 를 실행 하거나 취 합 작업 을 병행 할 수 있 는 많은 방법 을 제공 합 니 다.사실 그것 의 사용 방식 은 IntStream 과 마찬가지 로 제공 하 는 방법 도 같 기 때문에 우 리 는 전개 하지 않 고 범례 를 직접 보 았 다.
LongStreamDemo.java
package cn.twle.util.stream;
import java.util.stream.LongStream;
public class LongStreamDemo {
    public static void main(String[] args) {
        System.out.println("--Using LongStream.rangeClosed--");
        LongStream.rangeClosed(13, 15).map(n->n*n).forEach(s->System.out.print(s +" "));
        System.out.println("
--Using LongStream.range--"); LongStream.range(13,15).map(n->n*n).forEach(s->System.out.print(s +" ")); System.out.println("
--Sum of range 1 to 10--"); System.out.print(LongStream.rangeClosed(1,10).sum()); System.out.println("
--Sorted number--"); LongStream.of(13,4,15,2,8).sorted().forEach(s->System.out.print(s +" ")); } }

출력 결 과 는 다음 과 같다.
--Using LongStream.rangeClosed--
169 196 225 
--Using LongStream.range--
169 196 
--Sum of range 1 to 10--
55
--Sorted number--
2 4 8 13 15 

DoubleStream java.util.stream.LongStream 은 원시 이중 정밀도 부동 소수점 형 서열(sequence)이다.이 흐름 은 이 흐름 의 요소 순 서 를 실행 하거나 취 합 작업 을 병행 할 수 있 는 많은 방법 을 제공 합 니 다.그것 의 사용 방식 은 IntStream 과 마찬가지 로 제공 하 는 방법 도 마찬가지 이 며,이외에 몇 가지 집합 방법 을 추가 로 제공 하 였 다
방법.
설명 하 다.
average
평균 값 을 계산 하 다
max
최대 값 찾기
다음 코드 는 DoubleStream 류 의 간단 한 사용 예제 입 니 다.
package cn.twle.util.stream;
import java.util.function.DoublePredicate;
import java.util.stream.DoubleStream;
public class DoubleStreamDemo {
    public static void main(String[] args) {
        System.out.println("--Using DoubleStream.of--");
        DoubleStream.of(5.33,2.34,5.32,2.31,3.51).map(d->d*1.5).forEach(s->System.out.print(s +" "));
        System.out.println("
--Using DoubleStream.average--"); double val = DoubleStream.of(12.1,11.2,13.3).average().getAsDouble(); System.out.println(val); System.out.println("--Using DoubleStream.max--"); val = DoubleStream.of(12.1,11.2,13.3).max().getAsDouble(); System.out.println(val); System.out.println("--Using DoubleStream.filter--"); DoublePredicate range = d -> d > 12.11 && d < 12.99; DoubleStream.of(12.1,11.2,12.3).filter(range).forEach(d->System.out.print(d)); } }

출력 결 과 는 다음 과 같다.
--Using DoubleStream.of--
7.995 3.51 7.98 3.465 5.265 
--Using DoubleStream.average--
12.200000000000001
--Using DoubleStream.max--
13.3
--Using DoubleStream.filter--
12.3 

좋은 웹페이지 즐겨찾기