Java ストリームでプリミティブ型の数値を使用するサンプル

Javaのストリームでプリミティブ型(基本型)の数値を使用するサンプルです。

目次

IntStream

  • 値がint型のときに使用するストリームです。
  • 配列や指定した値からストリームを生成し、そのストリームに対して処理します。
  • 外部のローカル変数に対してアクセスできるのはfinal変数のみです。(再代入不可の変数)
  • 以下は、OracleのJava8のIntStreamインターフェースのリンクです。
    https://docs.oracle.com/javase/jp/8/docs/api/java/util/stream/IntStream.html

指定した値を足し算する

7行目のofはstaticメソッドです。指定した値でストリームを生成します。
8行目は、ストリームに対してsumメソッドで合計を出しています。
10,11行目は、ストリームを生成してsumで合計し、戻り値を変数bにセットしています。
14行目は、配列です。
15行目のofはstaticメソッドです。配列でStreamを生成します。

package test1;
import java.util.stream.IntStream;

public class Test1 {
    public static void main(String[] args) {
    	
        IntStream a = IntStream.of(2,1,3); //ストリームを生成
        System.out.println(a.sum()); //6
        
        long b = IntStream.of(2,1,3) //ストリームを生成
        		.sum();
        System.out.println(b); //6
        
        int[] c = {2,1,3};
        IntStream d = IntStream.of(c); //ストリームを生成
        System.out.println(d.sum()); //6
    }
 }

Arraysクラスのstreamメソッド

配列の値を足し算する

8行目は、配列です。値は数値です。

10行目は、ストリームを生成しています。
11行目は、ストリームに対してsumメソッドで合計を出しています。
13,14行目は、ストリームを生成してsumで合計し、戻り値を変数cにセットしています。

package test1;
import java.util.Arrays;
import java.util.stream.IntStream;

public class Test1 {
    public static void main(String[] args) {
        
        int[] num1 = {2,1,3};

        IntStream b = Arrays.stream(num1); //ストリームを生成
        System.out.println(b.sum()); //6
        
        int c = Arrays.stream(num1) //ストリームを生成
        	.sum();
        System.out.println(c); //6
    }
 }

StreamからIntStreamに変換する

StreamからIntStreamに変換するサンプルです。

15行目は、Streamを生成しています。
17,18行目は、mapToIntメソッドでStreamからIntStreamに変換しています。
ラッパークラスのIntegerからプリミティブ型のintになります。

package test1;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.IntStream;
import java.util.stream.Stream;

public class Test1 {
    public static void main(String[] args) {
        
    	List<Integer> num1 = new ArrayList<>();
        num1.add(5);
        num1.add(8);
        num1.add(9);
        
        Stream<Integer> a = num1.stream();
        
        IntStream b = a
        			.mapToInt(c->c);

        b.forEach(System.out::println); //5 8 9
    }
 }

IntStreamからStreamに変換する

IntStreamからStreamに変換するサンプルです。

8行目は、IntStreamを生成しています。
10,11行目は、boxedメソッドでIntStreamからStreamに変換しています。
プリミティブ型のintからラッパークラスのIntegerになります。

package test1;
import java.util.stream.IntStream;
import java.util.stream.Stream;

public class Test1 {
    public static void main(String[] args) {
    	    	
        IntStream a = IntStream.of(2,1,3); //ストリームを生成

        Stream<Integer> b = a
        					.boxed();

        b.forEach(System.out::println); //2 1 3
    }
 }

関連の記事

Java ラムダ式のサンプル
Java ラムダ式で既にある関数型インターフェースを使用するサンプル
Java ストリームのサンプル(Stream)
Java 匿名クラスのサンプル



△上に戻る