如何从其他类型创建新的Arraylist

时间:2016-01-26 07:55:30

标签: java arraylist

我有2个类员工和经理,可以扩展员工。 我有Arraylist类型的员工,包含员工和经理。 我想要通用方法,它将创建一个新的ArrayList类型管理器,它将复制第一个列表中的所有管理器。

2 个答案:

答案 0 :(得分:5)

步骤如下:

  • 制作新的List<Manager>
  • 循环浏览List<Employee>
  • 对于每个元素,使用运算符Manager
  • 检查该元素是否为**instanceof**
  • 如果是经理,请将其添加到List<Manager>
  • 返回List<Manager>

应该很容易在实际代码中翻译这些步骤。

答案 1 :(得分:1)

使用java 8,您可以使用流方法执行Davide Lorenzo MARINO中所述的步骤his answer

  
      
  • 创建新列表
  •   
  • 循环列表
  •   
  • 对于每个元素,检查该元素是否为使用运算符 instanceof
  • 的管理器   
  • 如果是经理,请将其添加到列表
  •   
  • 返回列表
  •   

使用java 8:

list.stream().filter(Manager.class::isInstance).map(Manager.class::cast).collect(Collectors.toList());

我们首先流式传输原始列表中的项目,过滤掉Manager s,将Manager转换为Manager个实例,然后将结果收集到列表中。