[英]Java. Best way to split each element of List
How can I optimize this using streams?如何使用流优化它?
List<String> prepared = new ArrayList<>();
availableFieldsFromImage.forEach(field -> {
if(field.contains(".")){
prepared.add(field.split("\\.")[0]);
} else {
prepared.add(field);
}
});
split
returns the initial string if the delimiter is not found, so there is no need to test for "."如果没有找到分隔符,则
split
返回初始字符串,因此无需测试“。” before performing the split:在执行拆分之前:
List<String> prepared = availableFieldsFromImage.stream()
.map(field -> field.split("\\.")[0])
.collect(Collectors.toList());
You can do:你可以做:
List<String> prepared = availableFieldsFromImage.stream()
.map(field -> field.contains(".") ? field.split("\\.")[0] : field)
.collect(Collectors.toList());
maybe也许
List<String> prepared=availableFieldsFromImage.stream()
.map(i->i.contains(".") ? i.split("\\.")[0] : i)
.collect(Collectors.toList())
Use a map
and then collect
使用
map
然后collect
availableFieldsFromImage.stream().map(field -> field.contains(".")
? field.split("\\.")[0]
: field)
.collect(Collectors.toList());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.