gpt4 book ai didi

java - 使用 BITwise 运算实现二维数组

转载 作者:行者123 更新时间:2023-12-02 06:41:00 26 4
gpt4 key购买 nike

A) int a[][]=new int[20][32];
a[2][3]=1;
if(a[2][3]==1)
{
System.out.println("true");
}
B) int a[]=new int[20];
a[2]=12;
if ((a[2] & (1 << 3)) != 0)
{
System.out.println("true");
}

在 A) 中,我使用 2D int 数组,我正在检查 [2,3] 是否为 1
在 B) 中,我使用 Int 索引作为第二个维度。的 mat.Here 我正在检查数组第二个元素的 3 位。哪一个更好?为什么要考虑速度和内存?

最佳答案

我将打破自己的规则,给出一个基于意见的“答案”。

显然,您的第一个方法的可读性明显更高,但会占用更多内存。如果您在一个非常大的数组上执行此操作,并且内存有限,那么按位掩码就有意义。

我强烈建议您远离这样的“聪明”技术,除非它们很好地封装在更高级别的函数中 - 此时,对于像这样的简单示例,您将失去性能优势(如果甚至有一个) )但会提高内存效率。

当然,当第二个维度不是 32 时,效率增益将会较小(而且解决特定位所需的工作量可能会进一步飙升)。

关于java - 使用 BITwise 运算实现二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19142204/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com