使用streams().reduce从ArrayList<Integer>构建一个字符串?

JavaScript 中,我们可以使用 reducer 构建其他类型的字符串(例如 num to string):

const string = [1,2,3,4,5].reduce((acc,e) => acc += e, "") //"12345"

Java 中,从其他类型构建字符串时,这种模式并不容易:

ArrayList<Integer> arrayListOfIntegers = (ArrayList<Integer>) Arrays.asList(1,2,3,4);
String string = arrayListOfIntegers.stream().reduce("", (String acc, Integer e) -> acc += e); // acc += e throws error

错误是:

“错误的返回类型:字符串不能转换为整数”

这种模式在 Java 中是不可能的吗?

回答

在 Java 中,您可以简单地使用 Collectors.joining

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class Main {
    public static void main(String[] args) {
        List<Integer> arrayListOfIntegers = Arrays.asList(1, 2, 3, 4);
        String str = arrayListOfIntegers.stream().map(String::valueOf).collect(Collectors.joining());
        System.out.println(str);
    }
}

输出:

1234


以上是使用streams().reduce从ArrayList&lt;Integer&gt;构建一个字符串?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>