从没有位置的 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 keywordNo
、String text
、int 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");
如果我在 Java 6 程序中有一个 ArrayList
如下:
ArrayList<Keyword> = new ArrayList<Keyword>();
其中 Keyword
具有 int keywordNo
、String text
、int 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");