为了账号安全,请及时绑定邮箱和手机立即绑定

有没有一种可能扩展int到long呢?

有没有一种可能扩展int到long呢?

莫回无 2023-04-04 10:06:01
java 默认的静态数组array长度是int类型e.g.int size = blah blah;int[] array = new int[size];出于效率的需要现在我需要将多维数组压缩成一维数组存储 而int类型的正数范围只有 0 ~ 2^31-1 也就是意味着我的array的大小只能到2^31
查看完整描述

2 回答

?
jeck猫

TA贡献1909条经验 获得超7个赞

如果说2^23都不够你用的话,建议你还是用多个数组,自己来管理不同的数组

查看完整回答
反对 回复 2023-04-07
?
ITMISS

TA贡献1871条经验 获得超8个赞

首先,针对你的问题给出答案:完全可以参考一下java.util.ArrayList的源码,自己包装一个不定长的一维数组,只不过这个抽象的一维数组里面是有多个一维数组构成,不过这种的方式的效率一般比多维数组低。

其次,对于你所说的

出于效率的需要现在我需要将多维数组压缩成一维数组存储

我持不同看法。首先,多维数组的内存存储也是连续的,访问效率跟一维数组相比,没你想的那么低,而且语言内置的多维数组寻址都会经过优化;再次,对于int类型长度还不够满足你的要求的,你自己可以算一下内存大小4Byte * 2^31 = 2^23(kB) = 2^13(MB)=8(GB),这样大的一个数组放在内存里面,你该考虑的不是你所说的问题,而是你的程序算法设计的问题了。


查看完整回答
反对 回复 2023-04-07
  • 2 回答
  • 0 关注
  • 87 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信