我已经为我的项目成功实现了HashMap,现在我被困在这里..
这是我的HashMap ...它将提取SQL数据,它将被放入The 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...
}
我试图比较两个值,我需要两个匹配并相互链接..我尝试玩它但似乎当它匹配一个..它做了一些事情..它只需要匹配一个...
但是我希望在列表中找到mike和james,然后它运行......某些东西......我打印出列表的结果,它显示了mike = james。
我如何做到这一点,以确定mike = james然后......存在.. else ..在列表中不存在..
答案 0 :(得分:2)
HashMap
(或任何其他Map
)不仅仅是2个列表,还是“对”列表,它是来自1个元素的映射(键)到另一个(值)。
您选择的地图名称(“列表”)表明您正在考虑它,就好像它只是一个列表,这会导致您走错路。
您想查看字符串 a (“mike”)是否映射到 b (“james”)。
要求在地图中查找 a 并针对 b 测试结果。
你想要像
这样的东西String m = map.get(a)
if( m != null && m.equals(b) ) {
// ...
} else {
// ...
}
答案 1 :(得分: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");
}
}
}