JAVA拆分列表中每个元素的最佳方法
如何使用streams优化此功能JAVA拆分列表中每个元素的最佳方法,java,java-stream,Java,Java Stream,如何使用streams优化此功能 List<String> prepared = new ArrayList<>(); availableFieldsFromImage.forEach(field -> { if(field.contains(".")){ prepared.add(field.split("\\.")[0]); } else {
List<String> prepared = new ArrayList<>();
availableFieldsFromImage.forEach(field -> {
if(field.contains(".")){
prepared.add(field.split("\\.")[0]);
} else {
prepared.add(field);
}
});
List prepared=new ArrayList();
availableFieldsFromImage.forEach(字段->{
如果(字段包含(“.”){
已准备好。添加(字段拆分(“\\”)[0]);
}否则{
准备。添加(字段);
}
});
也许吧
List<String> prepared=availableFieldsFromImage.stream()
.map(i->i.contains(".") ? i.split("\\.")[0] : i)
.collect(Collectors.toList())
List prepared=availableFieldsFromImage.stream()
.map(i->i.contains(“.”)i.split(“\\”)[0]:i)
.collect(收集器.toList())
使用地图
,然后收集
availableFieldsFromImage.stream().map(字段->字段.包含(“.”)
?字段拆分(“\\”)[0]
:字段)
.collect(Collectors.toList());
您可以执行以下操作:
List<String> prepared = availableFieldsFromImage.stream()
.map(field -> field.contains(".") ? field.split("\\.")[0] : field)
.collect(Collectors.toList());
List prepared=availableFieldsFromImage.stream()
.map(字段->字段.contains(“.”)字段.split(“\\”)[0]:字段)
.collect(Collectors.toList());
split
如果未找到分隔符,则返回初始字符串,因此在执行拆分之前无需测试“.”:
List prepared=availableFieldsFromImage.stream()
.map(字段->字段.split(“\\”)[0])
.collect(Collectors.toList());
虽然此代码可以回答问题,但提供有关如何和/或为什么解决问题的附加上下文将提高答案的长期价值。