java - 是否可以在 Java 中更改数组的类型?

标签 java

<分区>

Possible Duplicate:
byte array to Int Array

我有一个很大的字节数组,我能否以某种方式将它解释为一个整数数组,以便每个条目只是原始字节的四个?

我的意思是这样的:

for (int i = 0; i < byteArray.length; i += 4) {
    intArray[i / 4] = byteArray[i] << 24 + byteArray[i+1] << 16 + byteArray[i+2] << 8 + byteArray[i+3];
}

但与其逐字节复制整个数组(因为数组很大,这会花费很长时间),不如从已经存在的数组中读取整数。

最佳答案

使用这段代码:

IntBuffer intarray = ByteBuffer.wrap(bytearray).order(ByteOrder.BIG_ENDIAN).asIntBuffer();
 intarray.get(100);

将占用很少的额外堆空间。实际上,它包装字节数组并创建一个 int 数组 View 。明显更快,在我的 PC 中,缓冲区大小为 INT_MAX 需要几纳秒。

关于java - 是否可以在 Java 中更改数组的类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11893858/

相关文章:

java - 录制声音,然后在Android上使用/保存声音

java - Java中处理unicode字符并将结果写入mysql和HBase

java - JPA 和一组枚举值

java - 找不到指定的程序 (MapVirtualKeyEx) JNA (Java)

java - 使用 Spring 和 Hibernate 的 session 工厂处理多个数据库连接

java - 如何停止@Bean注释的Kstream kafka消费者并继续运行spring-boot应用程序

java - JavFX 2 菜单按钮

java - 我可以用 Java 找到控制台宽度吗?

java - 比较 ArrayList 中的 HashMap 值

java - Mockito 在调用 getter 时设置字段