使用流Java从另一个抽象类过滤并排序列表

时间:2018-12-21 09:46:46

标签: java inheritance collections java-stream

我有一个抽象类,它是一个列表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 :(得分: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