关于arraylist:在Java中重载addAll函数

Overload addAll function in Java

本问题已经有最佳答案,请猛点这里访问。

我想将数组[]转换为数组列表。在Java中使用起来更简单。

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

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

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

也就是说,类似于comparator的东西,只有当第二个参数中的函数对于该元素为true时,才在arraylist中添加元素。

我可以自己做一个Apple并添加元素,但是Java中有什么内置的吗?第二个问题:是否有一种方法可以重载addall函数来实现上述目标?


在Java 8中,你可以这样做:

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