Java 8新特性Stream非短絡端末操作
2846 ワード
非短絡端末操作
Java 8新機能Stream練習例
非短絡端末の操作は、すべての要素が最後に終わるまで徹底していることです.自分の欲しいデータを集めるのに使います.方法は次のとおりです.
遍厉forEach帰約reduce最大値max最小値min集約collectカウントcount
全力を尽くすforEach
帰約reduce
ある文章はこの問題に対して分析するのが特に良いです: >>
最大値max
最小値min
集約collect
ある文章はこの問題に対して分析するのが特に良いです: >>
カウントカウントカウント
細部が成否を決める!
個人の愚見、もし間違いがあれば、助けてください.
Java 8新機能Stream練習例
非短絡端末の操作は、すべての要素が最後に終わるまで徹底していることです.自分の欲しいデータを集めるのに使います.方法は次のとおりです.
遍厉forEach帰約reduce最大値max最小値min集約collectカウントcount
全力を尽くすforEach
// forEach
@Test
public void forEachTest() {
list.stream()
.forEach(iter ->
// json
System.out.println(
JSON.toJSONString(iter, true)));
}
// sku ,
帰約reduce
// reduce
@Test
public void reduceTest() {
//reduce , , , , 。。
// reduce 。
// min,max, reduce 。
Optional reduceSum = list.stream()
.map(Sku::getSkuPrice)
.reduce(Double::sum);
System.out.println(reduceSum.get());
//11326.5
Double reduceSumTest = list.stream()
.map(Sku::getSkuPrice)
.reduce(100.00, Double::sum);
System.out.println(reduceSumTest);
//11426.5
Integer reduce = Stream.of(1, 2, 3).
reduce(4,
(integer, integer2) -> integer + integer2,
(integer, integer2) -> integer + integer2);
System.out.println(reduce);
// :10
// :18, of :parallel()
}
ある文章はこの問題に対して分析するのが特に良いです: >>
最大値max
// max
@Test
public void maxTest() {
Optional max = list.stream()
.map(Sku::getSkuPrice)
.max(Double::compareTo);
// , compareTo
System.out.println(max.get());
//4999.0
}
最小値min
@Test
public void minTest() {
Optional min = list.stream()
.map(Sku::getSkuPrice)
.min(Double::compareTo);
// , compareTo
System.out.println(min.get());
//78.2
}
集約collect
// collect
@Test
public void collectTest() {
Stream s1 = Stream.of("aa", "ab", "c", "ad");
//
Predicate predicate = t -> t.contains("a");
//
ArrayList collect = s1.parallel().collect(() -> new ArrayList(),
(array, s) -> {
if (predicate.test(s))
array.add(s);
},
(array1, array2) -> array1.addAll(array2));
collect.forEach(System.out::println);
/**
* aa
* ab
* ad
*/
// , :toList,toSet,toMap...
}
ある文章はこの問題に対して分析するのが特に良いです: >>
カウントカウントカウント
// count
@Test
public void countTest() {
long count = list.stream().count();
System.out.println(count);
}
細部が成否を決める!
個人の愚見、もし間違いがあれば、助けてください.