在Java中重载addAll函数

时间:2014-10-31 06:45:47

标签: java arraylist

我想将array []转换为ArrayList。在java中,使用

更简单
new ArrayList<Element>(Arrays.asList(array))

但是如果我想在将它们放入ArrayList之前对数组中的元素进行一些完整性检查。例如。

new ArrayList<Element>(Arrays.asList(array,Sanity.isNotNull))

即。类似于Comparator的东西,只有当第二个参数中的函数对于该元素为真时,才在ArrayList中添加一个元素。

我总是可以为做并自己添加元素,但是有没有内置在Java中的东西?第二个问题:有没有办法超载 addAll 功能来实现上述目标?

1 个答案:

答案 0 :(得分:4)

在Java 8中,您可以执行以下操作:

new ArrayList<Element>(Arrays.asList(array).stream()
     .filter(elem -> /* condition on element that returns a boolean, i.e. "elem.age > 21" */ )
).collect(Collectors.toList());