java - 添加到 Linkedlist 后,int 与 Integer 的比较不起作用
问题描述
public static void main(String[] args) {
int var = 128;
Integer i = var;
int j = var;
LinkedList<Integer> ll = new LinkedList<>();
ll.add(var);
System.out.println(i==j);
System.out.println(i==ll.peek());
}
Output:
true
false
低于数字 128 的变量 var 的值给出了正确的输出:
Output:
true
true
请解释为什么 peek() 在 127 以上的值上比较失败?
解决方案
执行以下操作:
System.out.println(i.equals(ll.peek()));
请记住,==
比较参考,而不是内容。
在比较 Java 中的整数包装器时,检查为什么 128==128 为假但 127==127 为真?了解为什么它返回true
的数字小于128
.
推荐阅读
- java - 如何在 Visual Studio Code + java 上调试 Play Framework 1.x 应用程序
- android - 如何在 Android Studio 中缓存音频以供离线使用
- php - 需要帮助在 if-else 语句中嵌入 if-else 语句以导致页面重定向
- java - Log4j 引入配置文件并将所有内容打印到控制台
- pixel - 在公共机构的网站上找到此代码并有一些担忧。征求意见
- php - 不能添加外键
- python - 在 PySpark 并行执行上下文中使用 JAR 依赖项
- r - 组合 8 个变量集中的 2 个变量,每行的差异
- php - Laravel Homestead php 未加载扩展(sqlsrv)但已安装
- javascript - 从对象中获取数据