[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]