Vol*_*gel 6 java java-8 java-stream
我的任务是过滤一个数组,更改剩余的元素并返回包含已更改和未更改值的数组.我的代码:
return Arrays.stream(sentence.split(" "))
.filter(/* do some filter to each value */)
.map(/* map this value*/)
.collect(Collectors.joining());
Run Code Online (Sandbox Code Playgroud)
我怎样才能返回改变的数组和不变的价值观?
filter删除元素.如果您不想删除元素,而只是更改其中的一些元素,则可以使用?:或if-else inside map来有选择地更改元素.
例如:
System.out.println(Stream.of("abc", "def", "ghi")
.map(a -> a.equals("def") ? "xyz" : a)
.collect(Collectors.toList()));
Run Code Online (Sandbox Code Playgroud)
要么:
System.out.println(Stream.of("abc", "def", "ghi")
.map(a -> {
if (a.equals("def"))
return "xyz";
else
return a;
})
.collect(Collectors.toList()));
Run Code Online (Sandbox Code Playgroud)
这将只改变其等于元件def到xyz(对于彼此的元件,但是简单地保持该元素原样)和输出将是:
[abc, xyz, ghi]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
121 次 |
| 最近记录: |