ata*_*ata 4 arrays string java-8 java-stream
我知道对于object,我们可以为每个集合和更新对象,但对于像Strings这样的不可变对象,我们如何用新对象更新数组而不将其再次转换为数组.
例如,我有一个字符串数组.我想迭代每个字符串并修剪它们.否则我不得不这样做:
Arrays.stream(str).map(c -> c.trim()).collect(Collectors.toList())
Run Code Online (Sandbox Code Playgroud)
最后,我会得到一个List而不是我最初给出的String [].它经过了大量的处理.有什么方法可以做类似的事情:
for(int i = 0; i < str.length; i++) {
str[i] = str[i].trim();
}
Run Code Online (Sandbox Code Playgroud)
使用java流?
使用toArray:
str = Arrays.stream(str).map(c -> c.trim()).toArray(String[]::new);
Run Code Online (Sandbox Code Playgroud)
这里的缺点(相对于原始 Java 7 循环)是创建一个新数组来存储结果。
要更新原始数组,您可以用 s 重写循环Stream,但我不确定有什么意义:
IntStream.range (0, str.length).forEach (i -> {str[i] = str[i].trim();});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
448 次 |
| 最近记录: |