简体   繁体   English

Java。 拆分列表每个元素的最佳方法

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM