标签: boxing

如何在Java中将int []转换为List <Integer>?

如何转换int[]List<Integer>Java中?

当然,我对任何其他答案感兴趣,而不是逐个循环地进行.但如果没有其他答案,我会选择那个最好的,以表明这个功能不是Java的一部分.

java arrays collections autoboxing boxing

347
推荐指数
13
解决办法
37万
查看次数

为什么我们需要在C#中装箱和拆箱?

为什么我们需要在C#中装箱和拆箱?

我知道拳击和拆箱是什么,但我无法理解它的实际用途.我应该在哪里以及在哪里使用它?

short s = 25;

object objshort = s;  //Boxing

short anothershort = (short)objshort;  //Unboxing
Run Code Online (Sandbox Code Playgroud)

.net c# boxing

307
推荐指数
6
解决办法
13万
查看次数

为什么Python的数组会变慢?

我希望array.array比列表更快,因为数组似乎是未装箱的.

但是,我得到以下结果:

In [1]: import array

In [2]: L = list(range(100000000))

In [3]: A = array.array('l', range(100000000))

In [4]: %timeit sum(L)
1 loop, best of 3: 667 ms per loop

In [5]: %timeit sum(A)
1 loop, best of 3: 1.41 s per loop

In [6]: %timeit sum(L)
1 loop, best of 3: 627 ms per loop

In [7]: %timeit sum(A)
1 loop, best of 3: 1.39 s per loop
Run Code Online (Sandbox Code Playgroud)

可能是造成这种差异的原因是什么?

python arrays performance boxing python-internals

148
推荐指数
3
解决办法
2万
查看次数

将一个原始long数组转换为Longs列表

这可能是一个简单的问题,但是我的第一次尝试完全失败了.我想取一个原始long的数组并将其转换为一个列表,我尝试这样做:

long[] input = someAPI.getSomeLongs();
List<Long> inputAsList = Arrays.asList(input); //Total failure to even compile!
Run Code Online (Sandbox Code Playgroud)

这样做的正确方法是什么?

java arrays collections boxing

132
推荐指数
11
解决办法
8万
查看次数

什么是拳击和拆箱以及有什么权衡取舍?

我正在寻找一个清晰,简洁和准确的答案.

理想情况下,作为实际答案,虽然欢迎链接到良好的解释.

language-agnostic boxing unboxing glossary

128
推荐指数
4
解决办法
5万
查看次数

C#中的拳击事件

我正在尝试收集C#中发生装箱的所有情况:

c# boxing value-type

82
推荐指数
2
解决办法
4007
查看次数

为什么将Integer与int进行比较可以在Java中抛出NullPointerException?

观察这种情况让我非常困惑:

Integer i = null;
String str = null;

if (i == null) {   //Nothing happens
   ...                  
}
if (str == null) { //Nothing happens

}

if (i == 0) {  //NullPointerException
   ...
}
if (str == "0") { //Nothing happens
   ...
}
Run Code Online (Sandbox Code Playgroud)

因此,我认为首先执行装箱操作(即java尝试从中提取int值null),并且比较操作具有较低的优先级,这就是抛出异常的原因.

问题是:为什么在Java中以这种方式实现它?为什么拳击优先于比较参考?或者为什么他们没有null在拳击前实施验证?

目前,当NullPointerException使用包装的基元抛出它时看起来不一致,并且不会抛出真正的对象类型.

java boxing nullpointerexception

77
推荐指数
2
解决办法
3万
查看次数

装箱/拆箱和铸造有什么区别?

装箱/拆箱和铸造有什么区别?

通常,这些术语似乎可以互换使用.

.net boxing unboxing casting

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

拳击和拆箱与泛型

.NET 1.0创建整数集合的方法(例如)是:

ArrayList list = new ArrayList();
list.Add(i);          /* boxing   */
int j = (int)list[0]; /* unboxing */
Run Code Online (Sandbox Code Playgroud)

使用它的代价是由于装箱和拆箱而缺乏类型安全性和性能.

.NET 2.0方式是使用泛型:

List<int> list = new List<int>();
list.Add(i);
int j = list[0];
Run Code Online (Sandbox Code Playgroud)

拳击的价格(据我所知)是需要在堆上创建一个对象,将堆栈分配的整数复制到新对象,反之亦然,以便取消装箱.

泛型的使用如何克服这个问题?堆栈分配的整数是否保留在堆栈上并从堆中指向(我想这不是这种情况,因为当它超出范围时会发生什么)?似乎仍然需要将其复制到堆栈外的其他地方.

真的发生了什么?

.net c# generics boxing unboxing

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

如何将byte []转换为Byte [],反之亦然?

在不使用任何第三方库的情况下,如何将byte []转换为Byte [],并将Byte []转换为byte []?有没有办法快速使用标准库?

java arrays byte boxing

63
推荐指数
6
解决办法
7万
查看次数