[Java8]Stream APIのfilterメソッドで条件を満たす配列の要素を取得する方法

2020年11月9日

説明
1.public static String toString(int[] a)
指定された配列の文字列表現を返します。
2.public static IntStream stream(int[] array)
指定された配列をソースとして使用して、逐次的なIntStreamを返します。
3.IntStream filter(IntPredicate predicate)
パラメータ:predicate – 各要素を含めるべきか判定する目的で各要素に適用する、
Javaコード

package com.arkgame.study.it;

import java.util.Arrays;
import java.util.Random;

public class ArraysStreamDemo {

      // max element
      public static final int maxElement = 8;

      public static void main(String[] args) {

            // 元の配列の要素
            int[] oldArr = OldArrFunc();

            //新配列の要素作成
            newArrFunc(oldArr);
      }
      //Random ランダムの配列要素作成
      public static int[] OldArrFunc() {
            int[] cft = new int[maxElement];
            Random rdm = new Random();
            for (int i = 0; i < cft.length; i++) {
                  cft[i] = rdm.nextInt(maxElement);
            }
            System.out.println("元配列の要素:" + Arrays.toString(cft));
            return cft;

      }
      //filterメソッドで新配列を生成
      public static void newArrFunc(int tt[]) {
            int[] newArr = Arrays
                        .stream(tt)
                        .filter(val -> (val > 3))
                        .toArray();
            System.out.println("新配列の要素:" + Arrays.toString(newArr));

      }
}

実行結果
元配列の要素:[1, 2, 6, 1, 1, 0, 5, 3]
新配列の要素:[6, 5]

Java

Posted by arkgame