Java8 列表<T> 至列表<object[]>

Java8 list<T> to list<object[]>

如何使用流将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;
}

但我想做类似的事情:

...//    
return a.stream().filter(predicate).collect(Collectors.toList());

但我不知道如何将每个元素转换为 Object[]

您只需使用 map 函数即可:

return a.stream()
    .filter(predicate)
    .map(o -> new Object[] { (Object) o })
    .collect(Collectors.toList());

map "maps" 流的每个元素到给定函数的结果,以便在调用之后流中的所有元素都是映射函数返回的类型(在这种情况下 Object[])。