可能我在这里缺少一些基本的东西,但是从列表中选择符合某些条件的对象的最佳方法是什么? 假设我们有:
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,所以还没有 lambda。
最佳答案
我认为如果不创建某种索引就无法做到这一点。所以例如有Map<String, Map<String, Set<MyObject>>>
然后您可以调用index.get("type").get("bla")
。但你必须首先构建这个结构。如果 a) 属性没有变化并且 b) 你有很多对象,这将很有用。对于 10 个对象,这里不关心性能,我只是做你现在正在做的事情,并将其隐藏在一些不错的方便方法中。
关于java - 使用 Java 从列表中选择特定对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26234419/