java - 使用 Java 从列表中选择特定对象

标签 java list object arraylist

可能我在这里缺少一些基本的东西,但是从列表中选择符合某些条件的对象的最佳方法是什么? 假设我们有:

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/

相关文章:

java - 如何从终端运行 Ceylon Eclipse 项目?

python - 如何将字典列表拆分为 2 个单独的字典列表并进行相等性检查

class - Excel VBA : Extract custom class from dictionary

javascript - 更改对象数据

C++:传递 "typedef"定义的类作为参数

java - 从Windows Java应用程序访问Virtual Box HBase

java - 如何使用 NetBeans 将命令选项传递给 ant

java - 抛出FileNotFoundException时是否可以获取操作系统返回给JVM的错误码?

python - 是否有与 Ruby 的 'any?' 函数等效的 Python?

string - 在 Scala 中比较字符串列表