收集数组中的对象

Cod*_*roc 3 java java-8

我想过滤CC数组的地址,并希望将它收集到同一个数组,

例如

String[] ccAddress = emails.split(";");
ccAddress = Arrays.stream(ccAddress)
                  .filter(adr -> "".equals(adr) == false)
                  .collect(Collectors.toArray);// ?????
Run Code Online (Sandbox Code Playgroud)

我的问题是,"在Java8中有没有直接的方法来收集过滤后的元素"?

注意:我知道我可以简单地将它们收集到List并写入list.toArray()以获取数组,但这不是我的问题.

Dmi*_*urg 9

你查过文件了吗?

你可以使用Stream.toArray方法:

String[] ccAddress = emails.split(";");
ccAddress = Arrays.stream(ccAddress)
        .filter(addr -> !addr.isEmpty())
        .toArray(String[]::new);
Run Code Online (Sandbox Code Playgroud)

  • 你查过文件了吗?是的,但是我过于复杂的头脑让我陷入了收藏家,并且从未想过它可以让"toArray"收集到阵列中.谢谢.:) (2认同)
  • @TAsk:也许[this](http://stackoverflow.com/questions/28782165/why-didnt-stream-have-a-tolist-method#comment45848538_28782165)有助于理解为什么`toArray`是一个流方法而不是一个收集器... (2认同)