他笑他自己 2018-10-23 09:57 采纳率: 66.7%
浏览 636
已采纳

if(s1.peek()==s2.peek()) 即使两个值相等也无法执行?

刷leetcode时候,想判断两个栈,栈顶顶峰值是否相等地时候。第一次采用了

 s1.peek()==s2.peek();

执行不通过时候,疯狂地找思维逻辑漏洞,但是还是没找出,不断地调试,发现尽管值相等都无法执行里面地语句。
然后换了另一种方式表达

 int value = s1.peek();
 if(value == s2.peek());

然而却成功通过了。what?求解答,谢谢

  • 写回答

2条回答 默认 最新

  • 占海 博客专家认证 2018-10-23 10:42
    关注

    通过定义public Object peek()可以看出,peek()返回的是对象,对象不存在相等的概念,所以不能用==符号,
    而int不是对象,是变量值的概念,值可以使用==进行比较,
    值和对象间的转换涉及到装箱拆箱的动作,由程序自动完成,感兴趣可以去了解下。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 数学的三元一次方程求解
  • ¥20 iqoo11 如何下载安装工程模式
  • ¥15 本题的答案是不是有问题
  • ¥15 关于#r语言#的问题:(svydesign)为什么在一个大的数据集中抽取了一个小数据集
  • ¥15 C++使用Gunplot
  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 蓝桥杯单片机第十三届第一场,整点继电器吸合,5s后断开出现了问题