package com.neutron.java8.stream.demo;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
* Stream常用操作
* @author zhanght
*
*/
public class StreamEg {
/**
* collect方法
* 用途:collect(toList)方法由stream里的值生成列表,及早操作运算
* Stream中的of方法使用一组初始值生成新的Stream
*/
public static void collectEG() {
List<String> collected = Stream.of("a", "b", "c", "d").collect(Collectors.toList());
System.out.println("result:" + collected);
// result:[a, b, c, d]
}
/**
* map方法
* 用途:将一种类型值转化为另外一种类型,将一个流中的值转换为新的流
*/
public static void mapEG(){
// java8的处理方式
List<String> maped= Stream.of("a", "b", "c", "d")
.map(str -> str.toUpperCase())
.collect(Collectors.toList());
System.out.println("java8 result:" + maped);
//java8 result:[A, B, C, D]
// java6和5处理方式
String[] arrs = {"a", "b", "c", "d"};
List<String> arrList = new ArrayList<>();
for (String arr:arrs) {
arrList.add(arr.toUpperCase());
}
System.out.println("java5,6 result:" + arrList);
// java5,6 result:[A, B, C, D]
}
/**
* filter方法
* 用户:遍历数据并检查其中的元素内容
*/
public static void filterEG(){
// java5,6
List<String> target56 = new ArrayList<>();
for(String arr:Arrays.asList("1qwe", "sdf", "5wer")) {
if (Character.isDigit(arr.charAt(0))) {
target56.add(arr);
}
}
System.out.println("java5,6 result:" + target56);
// java5,6 result:[1qwe, 5wer]
// java8
List<String> target8 = Stream.of("1qwe", "sdf", "5wer")
.filter(str -> Character.isDigit(str.charAt(0)))
.collect(Collectors.toList());
System.out.println("java8 result:" + target8);
// java8 result:[1qwe, 5wer]
}
/**
* flatMap方法
* 作用:将多个Stream连接成一个Stream流
*/
public static void flatMapEG() {
List<Integer> numbers8 = Stream.of(Arrays.asList(1, 2, 3), Arrays.asList(1, 4, 6))
.flatMap(numbers -> numbers.stream())
.collect(Collectors.toList());
System.out.println("java8 result:" + numbers8);
// java8 result:[1, 2, 3, 1, 4, 6]
}
public static void main(String[] args) {
// collectEG();
// mapEG();
// filterEG();
flatMapEG();
}
}
Stream流常用操作
猜你喜欢
转载自blog.csdn.net/neutron129/article/details/51478880
今日推荐
周排行