重载Java中的addAll函数



我想将数组[]转换为ArrayList。在java中,使用更简单

new ArrayList<Element>(Arrays.asList(array))

但是,如果我想在将数组中的元素放入ArrayList之前对它们进行一些健全性检查,该怎么办。例如

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

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

我总是可以为做并自己添加元素,但Java中内置了什么吗?第二个问题:有没有办法重载addAll函数来实现上述目标?

在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());

最新更新