Отфильтруйте и упорядочите список из другого абстрактного класса, используя поток Java - PullRequest
0 голосов
/ 21 декабря 2018

У меня есть абстрактный класс, который представляет собой список 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.

1 Ответ

0 голосов
/ 21 декабря 2018

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

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

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

    return map.get(type);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...