我想将array []转换为ArrayList。在java中,使用
更简单new ArrayList<Element>(Arrays.asList(array))
但是如果我想在将它们放入ArrayList之前对数组中的元素进行一些完整性检查。例如。
new ArrayList<Element>(Arrays.asList(array,Sanity.isNotNull))
即。类似于Comparator的东西,只有当第二个参数中的函数对于该元素为真时,才在ArrayList中添加一个元素。
我总是可以为做并自己添加元素,但是有没有内置在Java中的东西?第二个问题:有没有办法超载 addAll 功能来实现上述目标?
答案 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());