【例14.16】 输出1~10中的所有奇数
将1~10的数字放到一个ArrayList列表中,调用该列表的Stream对象的filter()方法,方法参数为过滤奇数的lambda表达式。查看方法执行完后Stream对象返回的结果。
方法一、
/*【例14.16】 输出1~10中的所有奇数
* 将1~10的数字放到一个ArrayList列表中,调用该列表的Stream对象的filter()方法,
* 方法参数为过滤奇数的lambda表达式。查看方法执行完后Stream对象返回的结果。
* */
package lambdabdshlcl;
import java.util.List;
import java.util.ArrayList;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class FilterOddDemo {
static void printeach(String message,List list) {
System.out.print(message);
list.stream().forEach(
n->{
System.out.print(n+" "); // lambda表达式,来作为forEach()方法的参数
});
System.out.println(); // 换行
}
public static void main(String[] args) {
// TODO 自动生成的方法存根
List<Integer> list = new ArrayList<Integer>();
for(int i = 1;i <= 10;i++) {
list.add(i);
}
printeach("集合原有元素:",list); // 输出集合元素
Stream<Integer> stream = list.stream(); // 创建集合流对象
stream = stream.filter(
n->n%2==1 // 将集合中的所有奇数过滤出来,把过滤结果重新赋值给
);
List<Integer> result = stream.collect(Collectors.toList()); // 将流对象重新封装成一个List集合
printeach("过滤之后的集合元素",result);
}
}
方法二、
package lambdabdshlcl;
import java.util.List;
import java.util.ArrayList;
import java.util.stream.Stream;
import java.util.stream.Collectors;
public class FilterOddDemo2 {
static void printeach(String message,List list) {
System.out.print(message);
list.stream().forEach(
n->{
System.out.print(n+" ");
}
);
System.out.println();
}
public static void main(String[] args) {
// TODO 自动生成的方法存根
List<Integer> list = new ArrayList<Integer>();
for(int i = 1;i <=10;i++) {
list.add(i);
}
printeach("集合中的原有元素:",list);
List<Integer> result = list.stream().filter(n->n%2==1).collect(Collectors.toList());
printeach("过滤后的集合元素:",result);
}
}