这里可能缺少一些基本的东西,但是从列表中选择符合某些条件的对象的最佳方法是什么? 说我们有:从列表中选择特定的对象用Java
class MyObject {
int id;
String type;
// getters..setters
}
我使用它:
List<MyObject> myObjects = new ArrayList<MyObject>();
myObjects = getListOfObjects();
现在让我们说,在myObjects
有10个项目,其中3个有type=="bla"
。此刻,我只是循环所有对象,并在循环内决定是否需要它,但有没有更好的方法?
我记得,在C#中我曾经有过类似
myObjects.Where(x => x.type.equals("bla"));
PS,我指定的Java 7所以没有拉姆达我呢。
然后你已经做对了。 – 2014-10-07 10:59:33
如果您试图避免循环遍历列表并打算总是按类型检索对象组,请考虑一个'Map>' –
2014-10-07 11:05:01
另一种替代方案可以是番石榴Multimap。在你的情况下,“bla”将是关键。 http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/collect/Multimap.html – 2014-10-07 11:12:36