У меня есть абстрактный класс, который представляет собой список 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.
Я ошибаюсь, когда писал это
Что у меня есть класс Inventory, который хочет выбрать и упорядочить его элементы
Все еще непонятно, ну по крайней мере для меня. Поделитесь абстрактным классом вместе с другой связанной информацией.




Можно использовать groupingBy как коллектор, если это вы имеете в виду - не совсем понятно.
public List<Collection<?>> getCollectionByType(Class<?> type) {
Map<Class<?>, List<Collection<?>>> map =
collections.stream()
.collect(Collectors.groupingBy(Object::getClass));
return map.get(type);
}
Почему бы тебе не использовать
filter(t -> t instanceof WantedClass)?