[Java8]Stream APIのfilterメソッドで条件を満たす配列の要素を取得する方法
説明
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]