题目:

解法一:
package com.itheima.a02test;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.function.Predicate;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class Test1 {
public static void main(String[] args) {
//1.创建集合
/*对于集合的使用,没有特殊要求下默认使用ArrayList集合*/
ArrayList<Integer> list = new ArrayList<>();
//2.添加数据
Collections.addAll(list, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
//3.获取stream流,并把list集合中的数据放到流水线当中
Stream<Integer> stream = list.stream();
//4.过滤流里的数据即过滤集合list中的数据,过滤要用到filter方法
List<Integer> newList = stream.filter(new Predicate<Integer>() {
@Override
public boolean test(Integer integer) { //integer依次代表流里面的每一个数据即集合list中的数据,integer只是一个变量名
/* 根据题意:
如果是偶数,则保留,所以要返回true;
如果是奇数,则过滤,此时返回false。*/
if (integer % 2 == 0) return true; //if语句中代表integer为偶数,此时返回true,意味着保留偶数
return false; //else语句中代表integer为奇数,此时返回false,意味着过滤掉奇数
}
}).collect(Collectors.toList()); //5.最终要把结果保存起来即收集数据,由于收集通常保存到集合中,所以可以调用collect方法
/* collect方法里的参数Collectors.toList(),
Collectors是stream流的工具类,
再去调用toList方法,表示新建一个List集合,把并流里面的数据放到该集合中*/
//5.打印newList集合
System.out.println(newList);
}
}
解法二:
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class Main1 {
public static void main(String[] args) {
//1.创建集合
/*对于集合的使用,没有特殊要求下默认使用ArrayList集合*/
ArrayList<Integer> list = new ArrayList<>();
//2.添加数据
Collections.addAll(list, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
//3.获取stream流,并把list集合中的数据放到流水线当中
Stream<Integer> stream = list.stream();
//4.过滤流里的数据即过滤集合list中的数据
/* 根据题意:
如果是偶数,则保留,所以要返回true;
如果是奇数,则过滤,此时返回false。*/
List<Integer> newList =
stream.filter(n -> n % 2 == 0) //这里的n依次表示流里面的每一个数据,n只是一个变量名
.collect(Collectors.toList());//5.最终要把结果保存起来即收集数据,由于收集通常保存到集合中,所以可以调用collect方法
/* collect方法里的参数Collectors.toList(),
Collectors是stream流的工具类,
再去调用toList方法,表示新建一个ArrayList集合,然后流里面的数据放到该ArrayList集合中*/
//5.打印newList集合
System.out.println(newList); //运行结果为[2, 4, 6, 8, 10]
}
}