首页 > 解决方案 > 如何将几个 foreach 压缩成一个 for-each?

问题描述

我想连接每个数组,然后迭代生成的集合。

        String[] type = {"school", "home"};
        String[] place = {"tokyo ", " New York"};
        String[] date = {"Sep", "Feb"};


        for(String name: type) {
            Assert.assertFalse(isValid(name));
        }
        for(String name: place) {
            Assert.assertFalse(isValid(name));
        }
        for(String name: date) {
            Assert.assertFalse(isValid(name));
        }

标签: java

解决方案


不一定针对您展示的每个人,但也许您会对以下内容感兴趣:

Stream.of(type, place, date) //Stream<String[]> example [ [a,b], [c,d] ]
      .flatMap(Stream::of)   //Stream<String>   example [ a, b, c, d ]
      .forEach(name -> Assert.assertFalse(isValid(name));

这类似于

for (String[] arr : Arrays.asList(type,place,date)){
    for(String name : arr){
        Assert.assertFalse(isValid(name)
    }
}

推荐阅读