我有一个对象列表,这些对象都有一个名为AssetType的枚举值,是否可以使用keepAll()方法对列表进行排序,以便仅保留具有AssetType.BANK_ACCOUNT的对象?
提前寻求任何帮助。
最佳答案
(公开:我为番石榴做出了贡献。)
一个更直观的基于番石榴的实现将是
Iterables.removeIf(allAssets, new Predicate<MyObject>() {
public boolean apply(MyObject asset) {
return asset.getAssetType() != AssetType.BANK_ACCOUNT;
}
});
...也就是说,老实说,我更喜欢笨拙的纯Java实现:
Iterator<MyObject> itr = allAssets.iterator();
while (itr.hasNext()) {
if (itr.next().getAssetType() != AssetType.BANK_ACCOUNT) {
itr.remove();
}
}