java - 如何在列表中查找对象的数量
问题描述
我有一个对象:
Trip {
private TripName tripName;
private List<TripStops> tripStops;
}
Trip Stops 包含
TripStops {
private PackageObject packageObject;
private PackageTask packageTask;
}
我正在尝试使用 Java8 获取行程中的 PackageObject 计数。
我能做这样的事情吗?或者,还有更好的方法
Integer packageCount = Trip.getTripStops.stream().filter(TripStops::getPackageObject).count
解决方案
将“我正在尝试获取行程站内 PackageObject 的计数”这句话解释为代码:
long count = Trip.getTripStops().stream().count();
或者简单地说:
int count = Trip.getTripStops().size();
因为每个人TripStops
都有一个.PackageObject
但是,要获取TripStops::getPackageObject
通过给定条件的返回元素的计数:
long count = Trip.getTripStops().stream()
.map(TripStops::getPackageObject)
.filter(criteria) // where criteria is the condition to be passed
.count();
// or merge map/filter into one with ---> .filter(t -> t.getPackageObject()...)
推荐阅读
- vue.js - 在 vuex 流中运行脚本的正确位置?
- django - 如何更改根 URL 配置以便为用户 URL 使用命名空间
- android - 如何获得使用 MotionLayout 的障碍
- angularjs - “npm run dev”和“npm start”之间的区别
- reactjs - 在页面刷新之前,项目不会映射 - 使用 firestore、react 和 redux
- r - Shinyapps.io 服务器上的 data.table 错误,但不是本地错误
- ios - 当父母和孩子有相同的数据时,如何使用 Alamofire 解析数据?
- user-interface - wxPython dirpickerctrl 文本框出现在它自己的浏览按钮上
- r - 将制表符分隔的字符串转换为数据框
- python - python:将符号特征函数的向量转换为评估函数的矩阵