【发布时间】:2016-09-15 06:34:24
【问题描述】:
我在 int[][][] 数组中工作,我需要从静态函数返回该数组的一个字段的地址。
鉴于 Array 的尺寸将保持较小 (int[32][32][32]),我的想法是返回一个包含所有三个值的数字,而不是使用包含三个数字的 Array。
我已经有了一个可行的解决方案,我将我的号码打包成一个字符串,并通过Integer.parseInt(String) 在接收方法中将其解包。
不幸的是,这在运行时方面效果不佳,所以我想到了位移。
我为我糟糕的英语道歉,希望这个简单的问题值得你花时间:)
【问题讨论】:
-
到目前为止你尝试过什么代码?
-
Bitshifting 是否可用取决于数字的大小。我的意思是,如果您需要存储 0-99 之间的值,您可以将
34、72和03保存在像347203这样的数字中。 -
你也可以使用字符串,这样处理起来会容易很多
-
@UDKOX 是正确的 - 以 100 为基数的简单编码适合您的用例 - 在许多机器上除以小常数(100、1000)一点也不贵,而且这个解决方案具有优势如果它在基数 100 而不是基数 64 或基数 256 中,那么在调试时确定编码索引是什么肯定更容易!
-
@UDKOX 这正是我的想法!我的数字在 0 到 31 的范围内
标签: java arrays return bit-shift return-type