Java中Arrays.asList()方法是否支持char[]类型数组?
Arrays.asList()能否用于char[]数组?
结论是不能按预期将Arrays.asList()直接用于char[]数组,原因和具体情况如下:
- Arrays.asList()的参数是泛型可变参数
T... a,而Java的基本类型(比如char)无法作为泛型的类型参数。当你传入char[]数组时,方法会把整个char[]对象当作List的单个元素,而不是把数组里的每个char拆分成List的元素。
举个例子对比:
// 处理Integer数组,得到预期的List<Integer> Integer[] intArr = {75, 85, 95, 70}; List<Integer> intList = Arrays.asList(intArr); // 处理String数组,得到预期的List<String> String[] strArr = {"String", "Integer", "Character"}; List<String> strList = Arrays.asList(strArr); // 处理char[]数组,得到的是List<char[]>,而非List<Character> char[] charArr = {'a', 'b', 'c'}; List<char[]> charList = Arrays.asList(charArr);
如果想要得到包含单个Character元素的List,可以用以下两种方法:
- 手动遍历数组添加元素:
char[] charArr = {'a', 'b', 'c'}; List<Character> charList = new ArrayList<>(); for (char c : charArr) { charList.add(c); }
- 使用Stream API转换:
char[] charArr = {'a', 'b', 'c'}; List<Character> charList = Arrays.stream(charArr) .boxed() .collect(Collectors.toList());
内容的提问来源于stack exchange,提问作者Lana
相关产品推荐
相关产品推荐

