我有两个包含HashMap与字符串和整数和他们都携带“20”和20 当我尝试使用的toString()我总是得到不平等对它们进行比较:比较两个HashMap的Integer和String
HashMap<String, String> vals = HashMap<String, String>();
HashMap<Integer, Integer> nums = HashMap<Integer, Integer>();
if(nums.get(id).toString() == vals.get("num")) {
Log.i(TAG, "DataBase.updateOrder(): number is the same");
} else {
Log.i(TAG, "DataBase.updateOrder(): number has changed");
}
当我使用Integer.valueOf()为字符串的HashMap它工作得很好,他们是平等的:
if(nums.get(id) == Integer.valueOf(vals.get("num")))
,当然还有以下记录好好尝试在所有的工作中,我需要的方式:
num.get(id).equals(vals.get("num"))
所以问题是为什么我的第一个代码不工作(如我所料)?
你对散列表的每个条目使用了相同的密钥吗? – Blackbelt 2014-09-22 10:48:56
其实没有。 nums只保留记录的ID,vals保存一个记录的值,包括其在“num”键下的ID。 – kolyaseg 2014-09-22 11:06:49