【发布时间】:2020-05-10 19:37:50
【问题描述】:
有没有办法声明一个int数组(arr),这样 索引 i 可以表示任何数字
所以 arr[i] 永远不会返回错误,只要值是
我试过int[] arr = new int[Integer.MAX_VALUE],但这需要太多空间,不可行。
【问题讨论】:
-
数组是固定大小的,所以没有真正的办法解决它需要大量空间的问题。您是否考虑过使用其他数据结构,例如以 Integer 为 Key 的 Map?
-
这听起来像是 XY 问题,您真的想做什么?
-
@SDJ 更像是 8 GB。 Integer 的大小为 4 个字节,((long) Integer.MAX_VALUE * 4) 为 8589934588(字节),大约为 8.5 GB
-
哎呀,对,正好是 8GB,1024 定义为“kilo”等。
-
@SDJ 我相信你的意思是 gibibyte,它是 GiB 的缩写