相关疑难解决方法(0)

Java Vector或ArrayList for Primitives

有Java API中的可膨胀的数组类相当于VectorArrayList可以与图元可以使用类(INT,炭,双,等)?

我需要整数快速,可扩展的阵列,它似乎浪费有包裹他们在Integer班级,以便与使用它们VectorArrayList.我的google-fu让我失望了.

java primitive vector arraylist primitive-types

22
推荐指数
4
解决办法
2万
查看次数

为什么编译器/ JVM不能让autoboxing"正常工作"?

Autoboxing相当可怕.虽然我完全理解之间的差异==.equals我不能不帮助有后续错误的地狱了我:

    final List<Integer> foo = Arrays.asList(1, 1000);
    final List<Integer> bar = Arrays.asList(1, 1000);
    System.out.println(foo.get(0) == bar.get(0));
    System.out.println(foo.get(1) == bar.get(1));
Run Code Online (Sandbox Code Playgroud)

那打印

true
false
Run Code Online (Sandbox Code Playgroud)

他们为什么这样做?它与缓存的整数有关,但如果是这样的话,为什么它们不只是缓存程序使用的所有整数?或者为什么JVM始终不会自动拆箱到原始状态?

打印虚假或真假会更好.

编辑

我不同意旧代码的破坏.通过foo.get(0) == bar.get(0)返回true,您已经破坏了代码.

通过在字节代码中将int替换为int(只要从未赋值为null),就不能在编译器级别解决这个问题.

java autoboxing caching integer

12
推荐指数
3
解决办法
2486
查看次数