我有以下方法:
public boolean isMsgOk(String msg) {...}
我想在这里调用此方法:
public String[] returnOkMessages(String... msgs) {
return Arrays
.asList(messagessgs)
.stream(message->isMsgOk(message))
.anyMatch() ???;
}
我想返回 String
s的 List
isMsgOk
方法返回 true
。
我该如何收集它们?
使用filter
,然后使用collect
到List
:
return Arrays.asList(messagessgs)
.stream()
.filter(message->isMsgOk(message))
.collect(Collectors.toList())
或:
return Arrays.stream(messagessgs)
.filter(this::isMsgOk)
.collect(Collectors.toList())
编辑:
如果输出应该是数组,请使用:
return Arrays.stream(messagessgs)
.filter(this::isMsgOk)
.toArray(String[]::new)
将它们收集到List
(您也可以使用方法参考而不是lambda(
.filter(this::isMsgOk)
.toArray(String[]::new);