我有一个拥有传统信息的人的列表 - 比方说图书出租。因此,我列表中的每个租赁对象都会包含一个人对象作为属性和一些出租信息。对于每个人,列表中会有1..n个条目。在Java中筛选列表
现在我需要根据一些标准过滤此列表。如果其中一个条目符合某个标准,我想要删除该人员的所有条目,即使其他条目与条件不匹配。
有没有一种很好的方法来做到这一点在一个过滤器?替代方法是扫描列表,找出人,他们的项目应该被删除,然后再应用类似
Collections2.filter(myList, new MyPredicate(peopleIWantToRemove))
但我想只有一次列表遍历做到这一点。我怎样才能做到这一点?
我认为这篇文章指出了这样一个观点,即你正在使用的集合可能不合适。我认为保持一个“Map>”开始将是一条路。如果您需要订购,请使用'LinkedHashMap'。此外,Guava提供了一个'Multimap'集合集合,用于执行列表映射并负责为您创建后端列表。 –