2016-05-17 69 views
-3

我已经成功实施的HashMap为我的项目,现在我stucked这里..如何在HashMap中成功比较两个字符串?

这是我的HashMap ......它会提取SQL数据,并且将投入HashMap的...

private Map<String, String> list = new HashMap<String, String>(); 
sql.... extract data .... 
while (...) { 
    list.put(string1, string2); 
} 

所以..现在我有两个字符串...

a = mike; 
b = james; 

因为它是同步的HashMap ..我想找出我该怎么做..

if (list.containsKey=a+b)? or if (list.containsValue=a+b)? 
if (list.containsKey(a) && list.containsValue(b)) { 
    do.... 
} else { 
    do nth... 
} 

我试图比较两个值,我需要两个匹配和相互链接..我试着玩它,但它看起来像当它匹配一.. ..它做的事情..它只是需要匹配一个...

但我想要在列表中找到迈克和詹姆斯,然后运行....东西..我打印出列表的结果,它显示迈克=詹姆斯。

如何这样做是为了看看迈克·詹姆斯= ...然后..存在其他..在列表不存在..

+0

“成功实施的HashMap”请​​解释 – piyushj

+0

它如预期运行。只是,我不知道如何比较或成功比较键/值同步。像mike = james,那么在继续操作之前如何确保两个字符串都是正确的呢? – Nicky

回答

2

一个HashMap(或任何其他Map)不仅仅是2个列表或“对”的列表,它是从1个元素(密钥)到另一个()的映射。

您选择的地图名称(“列表”)表明您正在考虑它,就好像它只是一个列表,而这会导致您走错了路。

你想看到的字符串一个( “迈克”)是否映射到b( “詹姆斯”)。

要求在地图上查找a并对b测试结果。

你想要的东西像

String m = map.get(a) 
if(m != null && m.equals(b)) { 
    // ... 
} else { 
    // ... 
} 
+0

谢谢,简单又容易 – Nicky

2

真的很难理解你所追求的。如果你正在寻找一个元组,像下面将工作:

public static void main(String[] args) { 
    Map<String, String> map = new HashMap<>(); 

    map.put("mike", "james"); 

    printTupleIfFound(map, "mike", "james"); 
} 

private static void printTupleIfFound(Map<String, String> map, String fst, String snd) { 
    for (Entry<String, String> entry : map.entrySet()) { 
     if (entry.getKey().equals(fst) && entry.getValue().equals(snd)) { 
      System.out.println(fst + "," + snd + " is in the map"); 
     } else { 
      System.out.println(fst + "," + snd + " is NOT in the map"); 
     } 
    } 

}