Отфильтровать и упорядочить список из другого абстрактного класса с помощью потока java

У меня есть абстрактный класс, который представляет собой список Collection, и у него есть три класса, которые наследуют класс Collection. Это Ground, Sky and Sea. Теперь я бы хотел из другого класса выбрать один из этих типов и заказать его.

public List<Collection> getCollectionsPerType(String type){
List<Integer> collection= collection.stream()   
.filter(collection -> collection.getType() == Collection.??) 

Я добрался до этого момента, но потом понимаю, что не знаю, как получить типы из списка. И у меня есть другой вопрос: чтобы использовать stream(), мне нужно создать метод в классе Collection, потому что это то, что говорит Eclipse.

Почему бы тебе не использовать filter(t -> t instanceof WantedClass)?

daniu 21.12.2018 10:49

Я ошибаюсь, когда писал это

jdk 21.12.2018 10:51
Теперь я бы хотел из другого класса выбрать один из этих типов и заказать его. - Что вы имеете в виду?
Nicholas K 21.12.2018 10:53

Что у меня есть класс Inventory, который хочет выбрать и упорядочить его элементы

jdk 21.12.2018 11:05

Все еще непонятно, ну по крайней мере для меня. Поделитесь абстрактным классом вместе с другой связанной информацией.

Nicholas K 21.12.2018 11:25
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
2
5
640
1

Ответы 1

Можно использовать groupingBy как коллектор, если это вы имеете в виду - не совсем понятно.

public List<Collection<?>> getCollectionByType(Class<?> type) {

    Map<Class<?>, List<Collection<?>>> map = 
        collections.stream()
                   .collect(Collectors.groupingBy(Object::getClass));

    return map.get(type);
}

Другие вопросы по теме