我有一个对象:
Trip {
private TripName tripName;
private List<TripStops> tripStops;
}
行程停止包含
TripStops {
private PackageObject packageObject;
private PackageTask packageTask;
}
我正在尝试使用Java8获取Trip Stop内部的PackageObject的计数。
我可以做这样的事情吗?或者,还有更好的方法
Integer packageCount = Trip.getTripStops.stream().filter(TripStops::getPackageObject).count
最佳答案
将语句“我正在尝试将TripObject内的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()...)