java - 为什么使用 getValue() 和 get() 时 java 整数不相等
问题描述
为什么我需要额外的步骤来使其 intValue 以使它们相等?
是不是因为它在比较它是否是同一个对象?
Map<Integer, Integer> m1 = new HashMap<Integer,Integer>();
Map<Integer, Integer> m2 = new HashMap<Integer,Integer>();
m1.put(1, 1000);
m2.put(2, 1000);
for (Map.Entry<Integer,Integer> mmm : m1.entrySet()) {
if (mmm.getValue() == m2.get(2)) {
System.out.println("I should be equal");
}
if (mmm.getValue().intValue() == m2.get(2).intValue()) {
System.out.println("but im equal");
}
}
解决方案
是的,声明
mmm.getValue() == m2.get(2)
检查两者是否引用同一个对象,而不是它们中的值。要比较值,也可以这样做:
Map<Integer, Integer> m1 = new HashMap<Integer,Integer>();
Map<Integer, Integer> m2 = new HashMap<Integer,Integer>();
m1.put(1, 1000);
m2.put(2, 1000);
for (Map.Entry<Integer,Integer> mmm : m1.entrySet()) {
if (mmm.getValue().compareTo(m2.get(2)) == 0) {
System.out.println("I should be equal");
}
if (mmm.getValue().intValue() == m2.get(2).intValue()) {
System.out.println("but im equal");
}
}
推荐阅读
- c - 如何正确使用 posix_memalign
- angular - Angular 6:使用 forkJoin 处理错误
- sockets - _force_close_ 在 aiohttp (Base)Connector 中究竟做了什么?
- java - Libgdx 的世界单位
- java - Firebase 没有成功或失败
- wagtail - wagtail '你的第一个网站':我如何链接到画廊图片的原件?
- xampp - 错误:连接被拒绝:localtunnel.me:undefined(检查您的防火墙设置)
- firebase - Firebase:您的实时数据库 ***** 有不安全的规则
- spring-boot - 无法从其他来源调用安全的 Spring Boot Rest 服务
- r - R Shiny file输入多种文件类型