【发布时间】:2021-11-02 16:16:46
【问题描述】:
我认为显示我的代码更容易理解我的意思
String[] words = text.split(" ");
List<char[]> wordsInChars = new ArrayList<char[]>();
for(String i: words){
wordsInChars.add(i.toCharArray());
}
所以我创建了一个字符串数组,将 text 变量作为输入,然后我想 将其传递给列表而不经过该循环。是否可以完全跳过 for 循环?
我试过了
List<char[]> wordsInChars = Arrays.asList(Arrays.stream(words).forEach(w -> w.toCharArray()));
无论哪种方式,应该使用哪种方法?带有 for 循环的代码可以工作,但不确定是否只在声明时执行所有操作会更好。
编辑:我实际上管理过
List<char[]> wordsInChars = Arrays.stream(words).map(w -> w.toCharArray()).collect(Collectors.toList());
但欢迎就两者中哪一个更好的做法提供反馈。
【问题讨论】:
-
Is it possible to skip the for loop altogether?不。即使等效的流仍然包含一个循环,只是一个更难看到。 -
还要小心,因为它们并不等同。
Arrays.asList不返回ArrayList(实际上它返回一个不可变列表)。