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
相关产品推荐
相关产品推荐

