Java中如何将CharSequence[]转换为String[]或List<String>?
把CharSequence[]转为List的简洁解法
方法1:Java 8+ 流式处理(一行代码搞定)
直接用流将每个CharSequence元素转为String,再收集成List:
CharSequence[] csArray = {"a", "b", "c"}; List<String> stringList = Arrays.stream(csArray).map(CharSequence::toString).collect(Collectors.toList());
如果需要可变List(支持add/remove操作),可以把Collectors.toList()替换成Collectors.toCollection(ArrayList::new)。
方法2:先转String数组再转List
利用Arrays.copyOf直接将CharSequence[]转为String[],再通过Arrays.asList得到List:
CharSequence[] csArray = {"a", "b", "c"}; // 先转成String数组 String[] strArray = Arrays.copyOf(csArray, csArray.length, String[].class); // 套一层ArrayList得到可变List,直接用Arrays.asList会得到固定大小的List List<String> stringList = new ArrayList<>(Arrays.asList(strArray));
你之前踩的坑
你用Arrays.asList(Arrays.toString(e))得到[[a, b, c]]是因为Arrays.toString(e)会把整个数组拼接成单个字符串(比如"[a, b, c]"),所以最终List里只有这一个元素,自然不符合预期。
内容的提问来源于stack exchange,提问作者arman javadi
相关产品推荐
相关产品推荐

