java - 使用流 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 所说的。
解决方案
你可以groupingBy
用作收集器,如果你是这个意思的话——这并不完全清楚。
public List<Collection<?>> getCollectionByType(Class<?> type) {
Map<Class<?>, List<Collection<?>>> map =
collections.stream()
.collect(Collectors.groupingBy(Object::getClass));
return map.get(type);
}
推荐阅读
- racket - “如何设计程序”的问题,I 固定大小数据,1.7,练习 9
- mysql - Trigger optimisation
- mysql - SQL查询以显示列中字符串值的一部分
- java - 在 java 中读取属性文件的 NullPointerException
- java - 如何使用 JavaFX 应用程序的 sqlite 数据库文件正确构建 exe 文件?
- c# - WPF:带有拖动事件的滑块(拖动时暂停,不释放拇指)
- google-analytics - 谷歌跟踪代码管理器为用户定义的查询 URL 变量传递“未定义”
- ruby-on-rails - ActiveAdmin + Formtastic 中的嵌套表单
- javascript - Jest 测试中的静态文件
- asp.net - @if 内的@using(Html.BeginForm)