2016-01-26 6 views
0

У меня есть 2 сотрудника Employee и Manager, которые расширяют сотрудника. У меня есть тип Arraylist Employee, который содержит как сотрудников, так и менеджеров. Мне нужен общий метод, который создаст новый диспетчер типа ArrayList, который скопирует всех менеджеров из 1-го списка.Как создать новый Arraylist из другого типа

ответ

5

Шагов:

  • Создать новую List<Manager>
  • Петли через List<Employee>
  • Для каждой проверки элемента, если этот элемент является Manager с помощью оператора **instanceof**
  • Если менеджер Добавить к List<Manager>
  • Возврат List<Manager>

Это должно быть легко перевести эти шаги в реальном коде.

1

Используя java 8, вы можете использовать методы потока, чтобы выполнить шаги Davide Lorenzo MARINO, указанные в his answer.

  • Создать новый список
  • Loop через список
  • Для каждой проверки элемента, если этот элемент является менеджером с помощью оператора InstanceOf
  • Если менеджер добавить его в список
  • Возвращает список

Использование Java 8:

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

Мы первый поток элементов в исходном списке, фильтровать вне Manager с, отливать Manager с до Manager экземпляров, а затем собрать наш результат в виде списка.

Смежные вопросы