我只是想知道如何检查TreeMap>包含Java中的值? 例如:
/*I have TreeMap<String,ArrayList<String>> map with these elements
* {color = ["red","blue","green"], shape=["square", "circle"]}
*/
System.out.println(map.containsValue("square")); //This return false
System.out.println(map.values().contains("square")); //This return false also
当我使用containsValue()或contains()方法时,我总是得到错误。有人知道为什么,可以给我一些建议吗?
由于 编
答案 0 :(得分:3)
下面的内容可以使用
Map<String,ArrayList<String>> map=new TreeMap<String, ArrayList<String>>();
Collection<ArrayList<String>> values=map.values();
for(ArrayList<String> list:values)
{
list.contains("text_to_search")
{
}
}
答案 1 :(得分:1)
您正在测试地图是否包含字符串“square” - 但地图中的值是ArrayList&lt; String&gt;对象。
如果您知道自己正在寻找形状,可以先获取“形状”列表,然后测试它是否包含特定形状“方形”。
ArrayList<String> shapes = map.get("shape");
boolean containsSquare = shapes.contains("square");
答案 2 :(得分:0)
public boolean valueExists(String value){
for(Map.Entry<String,ArrayList<String>> entry : treeMap.entrySet()) {
String key = entry.getKey();
ArrayList<String> values = entry.getValue();
for (String str:values){
if (value.equals(str)){
return true;
}
}
}
return false;
}