将对象流映射为数值流
代码:
@Test
public void testToInt() {
ArrayList<Ant> ants = new ArrayList<>();
ants.add(new Ant("pork", false, 800));
ants.add(new Ant("beef", false, 700));
ants.add(new Ant("chicken", false, 400));
ants.add(new Ant("french fries", true, 530));
ants.add(new Ant("rice", true, 350));
ants.add(new Ant("season fruit", true, 120));
ants.add(new Ant("pizza", true, 550));
ants.add(new Ant("prawns", false, 300));
ants.add(new Ant("salmon", false, 450));
IntStream intStream = ants.stream().mapToInt(Ant::getNum);
intStream.forEach(i -> System.out.println(i));
}
class Ant {
private String name;
private boolean fat;
private int num;
public Ant(String name, boolean fat, int num) {
this.name = name;
this.fat = fat;
this.num = num;
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
}
输出:
800
700
400
530
350
120
550
300
450
生成一个数值范围流
代码:
@Test
public void testRange() {
// 创建一个不包含结尾的数值流
IntStream range = IntStream.range(1, 9);
range.forEach(i -> {System.out.println(i);});
// 创建一个包含两端的数值流
IntStream intStream = IntStream.rangeClosed(1, 10);
intStream.forEach(i -> {System.out.println(i);});
}
输出:
1
2
3
4
5
6
7
8
1
2
3
4
5
6
7
8
9
10
参考资料:https://www.cnblogs.com/woshimrf/p/Java8-number-stream.html
网友评论