我有地图,其中每个键都是一个字符串。
要访问一个值,我可以.get
使用Map
. 如果我想返回与键匹配的任何内容,例如:"one, onetwo, onetwothree"
,获取包含字符串的所有值,"two"
因此在这种情况下返回"onetwo, onetwothree"
。这可能使用 aMap
吗?
我目前使用一个列表并遍历每个字符串并检查字符串是否包含我正在搜索的值。
我有地图,其中每个键都是一个字符串。
要访问一个值,我可以.get
使用Map
. 如果我想返回与键匹配的任何内容,例如:"one, onetwo, onetwothree"
,获取包含字符串的所有值,"two"
因此在这种情况下返回"onetwo, onetwothree"
。这可能使用 aMap
吗?
我目前使用一个列表并遍历每个字符串并检查字符串是否包含我正在搜索的值。
使用 aHashMap
您将必须遍历所有键,并且一旦键与您的模式匹配,然后收集该值并继续执行直到完成。
使用 aTreeMap
您可以按排序顺序获取键,因此您可以使用此属性进行更有效的搜索。
但我认为你应该切换到不同的数据结构。A trie
as @zeller 还指出似乎做你想做的事
正如其他人所说,java集合API中没有方法可以实现这一点。这就是你如何通过迭代地图的键来做到这一点
HashMap<String, String> map = new HashMap<String, String>();
map.put("onesample", "1");
map.put("onetwo", "2");
map.put("onetwothree", "3");
for(Entry<String, String> en: map.entrySet()) {
if(en.getKey().contains("two")){
System.out.println(en.getKey());
}
}
}