Java 从没有位置的类X的ArrayList获取类X的实例
如果我在Java 6程序中有一个Java 从没有位置的类X的ArrayList获取类X的实例,java,arraylist,collections,Java,Arraylist,Collections,如果我在Java 6程序中有一个ArrayList,如下所示: ArrayList=newarraylist() 其中,关键字具有int关键字no、字符串文本、int频率和一些其他字段 如果我知道关键字text但不知道元素的位置或字段关键字no的值,如何从数组列表中检索元素 我知道我可以使用循环,只需通过比较Strings来读取ArrayList,直到找到元素,但是否有更好的替代方法?您必须使用循环迭代列表中的每个元素。对于每个迭代,您需要获取当前元素并检查其值 为了更快地访问,您应该使用映射,
ArrayList
,如下所示:
ArrayList=newarraylist()代码>
其中,关键字
具有int关键字no
、字符串文本
、int频率
和一些其他字段
如果我知道关键字text
但不知道元素的位置或字段关键字no
的值,如何从数组列表中检索元素
我知道我可以使用循环,只需通过比较Strings
来读取ArrayList
,直到找到元素,但是否有更好的替代方法?您必须使用循环迭代列表中的每个元素。对于每个迭代,您需要获取当前元素并检查其值
为了更快地访问,您应该使用映射
,其中字符串是关键字文本
您可以在地图中放置关键字,如下所示:
Map<String, Keyword> keywordsMap = new HashMap<String, Keyword>();
for (Keyword k : keywordList) {
keywordsMap.put(k.text, k);
}
Keyword result = keywordsMap.get("somekeyword");
是否可能有多个关键字
对象与给定的关键字文本
匹配?不,它们应该是唯一的。列表
接口有一个索引()方法
返回给定输入对象的索引,但它使用等于()
方法,如果关键字中的其他字段未知,则该方法可能不适用于您的案例。我宁愿避免为所讨论的类编写自己专用的equals
方法。q.v.也得出了相同的结论。是的,这正是我想我必须要做的。在循环中还有一个break
语句。