0

我只是想知道如何检查 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() 方法时,我总是会出错。有人知道为什么,可以给我建议吗?

谢谢埃德

4

3 回答 3

2

像下面这样的东西会起作用

 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")
                {

                }
            }
于 2013-08-10T19:53:10.203 回答
1

您正在测试地图是否包含字符串“square”——但地图中的值是 ArrayList<String> 对象。

如果知道要找一个形状,可以先获取“形状”列表,并测试是否包含特定形状“正方形”。

  ArrayList<String> shapes = map.get("shape");
  boolean containsSquare = shapes.contains("square");
于 2013-08-10T19:52:23.307 回答
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;
} 
于 2013-08-10T19:53:39.683 回答