Integer 与 int 之间的 == 关系



int _i = 1;

Integer _I = 1;

System.out.println("_i == _I :" + (_i ==_I));//true Integer自动拆箱

Integer _I2 = new Integer(1);

Integer _I2_1 = new Integer(1);

System.out.println("_I == _I2 :" + (_I ==_I2));//false 两个Integer比较不会自动拆箱

System.out.println("_i == _I2 :" + (_i ==_I2));//true

System.out.println("_I2 == _I2_1 :" + (_I2 == _I2_1));//false

Integer _I3 = 127;

Integer _I4 = 127;

System.out.println("_I3 == _I4 :" + (_I3 ==_I4));//true -128 ~ 127 的会直接使用cache里的

//Integer _I4 = 127; 即Integer _I4 = Integer.valueOf(127);

// public static Integer valueOf(int i) {

// assert IntegerCache.high >= 127;

// if (i >= IntegerCache.low && i <= IntegerCache.high)

// return IntegerCache.cache[i + (-IntegerCache.low)];

// return new Integer(i);

// }

Integer _I5 = 128;

Integer _I6 = 128;

System.out.println("_I5 == _I6 :" + (_I5 ==_I6));//false

Integer _I7 = 100;

Integer _I8 = new Integer(100);

System.out.println(_I7== _I8);//false

 

运行结果:

_i == _I :true

_I == _I2 :false

_i == _I2 :true

_I3 == _I4 :true

_I5 == _I6 :false

_I7 == _I8. false

总结:

  1. 基本类型int和任何同数值Integer,比较结果为true
  2. 两个直接自动装箱的同数值Integer,只要在-128 ~ 127之间,比较结果就为true
  3. 除以上两种以外,都为false

以上为个人总结,欢迎指正。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这段代码实现了一个货物排序的问题,其中 `paths` 数组表示货物之间的父子关系,`cargo` 数组表示需要排序的货物。具体来说,它包含了以下几个函数: - `getRoot(int[] paths)`:获取货物的根节点。 - `getDep(int now, int dep)`:遍历货物节点并计算每个节点的深度。 - `getTans(int[] paths, int[][] cargo)`:计算需要传输货物的数量。 - `cargoSorting(int[] paths, int[][] cargo)`:对货物进行排序并返回传输货物的数量。 在 `cargoSorting` 函数中,首先初始化了 `edge` 数组和 `sum` 数组,其中 `edge` 数组用于存储货物节点之间关系,`sum` 数组用于存储每个货物节点的深度。然后,通过调用 `getRoot` 函数获取根节点,并调用 `getDep` 函数计算每个节点的深度。最后,调用 `getTans` 函数计算需要传输货物的数量并返回结果。 在 `getTans` 函数中,它遍历了 `cargo` 数组中的每个元素,对每个元素执行以下操作:先将 `L` 和 `R` 分别赋值为该元素的左右端点,然后在 `L` 和 `R` 不相等的情况下执行循环。在循环中,如果 `L` 或 `R` 等于 `mid`(即目标节点),则说明需要传输货物,此时将 `ans` 值加1并跳出循环。否则,比较 `L` 和 `R` 节点的深度值,将深度值较小的节点的父节点作为新的 `L` 或 `R` 节点,直到 `L` 和 `R` 相等或者跳出循环。如果 `L` 和 `R` 都等于 `mid`,则说明需要传输货物,此时将 `ans` 值加1。最后,返回 `ans` 值,即需要传输货物的数量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值