gpt4 book ai didi

java - 我们如何使用 Java 8 将 List 转换为 Array char[]

转载 作者:行者123 更新时间:2023-12-05 03:20:08 25 4
gpt4 key购买 nike

我想到的一个解决方案是从流元素创建一个 String

像这样:

listChars.stream()
.map(String::valueOf)
.collect(Collectors.joining()
.toCharArray();

如何在不转换为 String 的情况下完成?

最佳答案

char 没有单独的原始流风格类型,因此,这种与流的转换不能以如此简单的方式完成,例如,转换List<Integer>int[]IntStream .

ListCharacter进入数组char[]使用流,你可以使用 CharBuffer 作为积累型。

这将允许避免制作不必要的数据副本(这将发生在 StringStringBuilder 中)因为 CharBuffer让您通过 CharBuffer.array() 访问其底层数组(以防它被数组烘焙)。

这就是我们如何根据 CharBuffer 创建一个收集器 :

char[] result = listChars.stream()
.collect(Collector.of(
() -> CharBuffer.allocate(listChars.size()), // allocating the underlying array
CharBuffer::append, // accumulating stream elements
CharBuffer::append, // merging buffers in parallel
CharBuffer::array // finisher function - extracting the backing array as a final action
);

关于java - 我们如何使用 Java 8 将 List<Character> 转换为 Array char[],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73268999/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com