我有一个抽象类,它是一个列表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所说的。
答案 0 :(得分:2)
如果这是您的意思,则可以使用public List<Collection<?>> getCollectionByType(Class<?> type) {
Map<Class<?>, List<Collection<?>>> map =
collections.stream()
.collect(Collectors.groupingBy(Object::getClass));
return map.get(type);
}
作为收集器-尚不完全清楚。
collections.Counter