You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java 8如何将List<Character>转换为char[]数组(不转String)

Java 8中不通过String将List转换为char[]的方法

你提到的通过String中转的方法确实可行,但如果不想经过String,有两种更直接的实现方式:

方法一:普通循环遍历填充

这种方式简单直观,性能稳定,直接利用List的已知长度创建数组,再逐个赋值:

import java.util.Arrays;
import java.util.List;

public class CharListToArray {
    public static void main(String[] args) {
        List<Character> listChars = Arrays.asList('h', 'e', 'l', 'l', 'o');
        char[] charArray = new char[listChars.size()];
        
        for (int i = 0; i < listChars.size(); i++) {
            charArray[i] = listChars.get(i);
        }
    }
}

方法二:利用Java 8 IntStream处理索引

如果偏好函数式编程风格,可以用IntStream生成索引范围,再通过索引给数组赋值:

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

public class CharListToArray {
    public static void main(String[] args) {
        List<Character> listChars = Arrays.asList('w', 'o', 'r', 'l', 'd');
        char[] charArray = new char[listChars.size()];
        
        IntStream.range(0, listChars.size())
                 .forEach(i -> charArray[i] = listChars.get(i));
    }
}

这两种方法都不需要依赖String中转,直接在List和char[]之间完成转换。普通循环在大多数场景下性能表现略优于流操作,而流操作则更符合Java 8的函数式编程习惯。

内容的提问来源于stack exchange,提问作者OwlR

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 15:18:04