java - 如何将几个 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));
}
解决方案
不一定针对您展示的每个人,但也许您会对以下内容感兴趣:
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)
}
}
推荐阅读
- css - 具有动态行的 Material-UI 文本字段
- jenkins - 詹金斯:docker.com 的太多请求
- azure - Azure 应用服务 - 始终开启与运行状况检查
- python - 如何使用 python 正则表达式查找标签并替换内部内容
- qt - 如果图像源不可用,有没有办法从 qml 中删除警告?
- flutter - 颤动动画控制器值未升至上限
- hyperledger-fabric - 如何在 Hyperledger Fabric 2.x 中创建自定义测试网络?如何在 test-netork 的私人频道中创建五个对等组织?
- python - 如何使用python使用多个IF条件语句
- docker - 当我尝试通过 HTTPS 连接我的 docker 时出现错误:x509: certificate is valid for 0.0.0.0, not
- c# - Xamarin.Android:动态 AutoCompleteTextView