Stream 之数值流

2018-12-08  本文已影响6人  hswwjp

将对象流映射为数值流

代码:

    @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

上一篇 下一篇

猜你喜欢

热点阅读