从没有位置的 class X 的 ArrayList 中获取 class X 的实例

Getting instance of class X from an ArrayList of class X without position

如果我在 Java 6 程序中有一个 ArrayList 如下:

ArrayList<Keyword> = new ArrayList<Keyword>();

其中 Keyword 具有 int keywordNoString textint frequency 和其他一些字段。

如果我知道 keywordText 但不知道元素的位置或字段 keywordNo 的值,如何从 ArrayList 检索元素?

我知道我可以使用循环并简单地通读 ArrayList 比较 Strings 直到找到元素,但是有没有更好的选择?

您将不得不使用循环遍历列表中的每个元素。对于每次迭代,您都需要获取当前元素并检查其值。

为了加快访问速度,您应该使用 Map<String, Keyword>,其中字符串是关键字文本。

您可以像这样将关键字放在地图中:

Map<String, Keyword> keywordsMap = new HashMap<String, Keyword>();
for (Keyword k : keywordList) {
    keywordsMap.put(k.text, k);
}

然后如果你想访问一个特定的关键字,你可以这样调用:

Keyword result = keywordsMap.get("somekeyword");