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

Java 如何从其他类型创建新的Arraylist,java,arraylist,Java,Arraylist,我有两个班,分别是Employee和Manager,用于扩展Employee。 我有Arraylist类型的Employee,它同时包含Employee和Manager。 我需要一个泛型方法,该方法将创建一个新的ArrayList类型管理器,该管理器将复制第一个列表中的所有管理器。步骤如下: 创建新的列表 循环浏览列表 对于每个元素,使用运算符检查该元素是否为管理器**instanceof** 如果是经理,则将其添加到列表中 返回列表 用实际代码翻译这些步骤应该很容易。这些步骤是: 创建新

我有两个班,分别是Employee和Manager,用于扩展Employee。 我有Arraylist类型的Employee,它同时包含Employee和Manager。 我需要一个泛型方法,该方法将创建一个新的ArrayList类型管理器,该管理器将复制第一个列表中的所有管理器。

步骤如下:

  • 创建新的
    列表
  • 循环浏览
    列表
  • 对于每个元素,使用运算符检查该元素是否为
    管理器
    **instanceof**
  • 如果是经理,则将其添加到
    列表中
  • 返回
    列表
用实际代码翻译这些步骤应该很容易。

这些步骤是:

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

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

使用java 8,您可以使用流方法来执行中所述的步骤

  • 创建一个新列表
  • 循环浏览列表
  • 对于每个元素,使用运算符instanceof
  • 如果是经理,则将其添加到列表中
  • 返回列表
使用java 8:

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

我们首先对原始列表中的项目进行流式处理,过滤掉
管理器
s,将
管理器
s转换为
管理器
实例,然后将结果收集到一个列表中。

使用java 8,您可以使用流方法执行中所述的步骤

  • 创建一个新列表
  • 循环浏览列表
  • 对于每个元素,使用运算符instanceof
  • 如果是经理,则将其添加到列表中
  • 返回列表
使用java 8:

list.stream().filter(Manager.class::isInstance).map(Manager.class::cast).collect(Collectors.toList());
我们首先流式处理原始列表中的项目,过滤掉
管理器
s,将
管理器
s转换为
管理器
实例,然后将结果收集到列表中