shu*_*now 0 java list java-8 java-stream
如何使用流解析Generic到Object []?我有过
private static <T> List<Object[]> selectData(List<T> a,
Predicate<T> predicate) {
ArrayList<Object[]> tmp = new ArrayList<Object[]>();
for (T x : a) {
if (predicate.test(x)) {
tmp.add(new Object[] { x });
}
}
return tmp;
}
Run Code Online (Sandbox Code Playgroud)
但我想做的事情如下:
...//
return a.stream().filter(predicate).collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
但我不知道如何将每个元素转换为Object []
您可以简单地使用该map函数来完成:
return a.stream()
.filter(predicate)
.map(o -> new Object[] { (Object) o })
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
map将流的每个元素"映射"到给定函数的结果,以便在该调用之后,流中的所有元素都是映射函数返回的类型(在本例中Object[]).