字节数组中的整数列表

法布里佐

我有一个具有大尺寸(3912984或更大)LinkedList <Integer>,我想将这些元素复制到字节数组中。整数是0或1,所以我不需要更改数组的大小,我只想一个一个地复制元素,确切地说就是它们。当然,我知道最简单的方法是:

 for(int i = 0; i < list.size(); i++)      
 array[i] = (byte)(int) list.get(i);

但是这种方法太慢了,我的程序在几个小时之前还没有结束!您是否可以知道另一种方式(更快,如.NET的Buffer.BlockCopy()之类),或者我必须更改数据结构?

萨加尔·甘地

Number类中提供了byteValue()方法。数字以整数,双精度,浮点数等扩展。

List<Integer> list = getNumbers();

Iterator<Integer> iterator = list.iterator();

while(iterator.hasNext())
{
   Integer i = iterator.next()
   byteArray[index] = i.byteValue();
}

您也可以使用java.nio.MappedByteBufferclass进行块复制。参见http://docs.oracle.com/javase/7/docs/api/java/nio/MappedByteBuffer.html

MappedByteBuffer等效于.NET中的Buffer.BlockCopy()

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章