【发布时间】:2013-03-15 21:21:38
【问题描述】:
我想创建一个大小的布尔数组,用户将把它作为输入。例如 - 用户可能会输入一个大数字,例如 1000000000000 ;所以我必须创建一个大小为 1000000000000 的布尔数组。我面临的问题是,我不能将输入存储为 int,因为它不能容纳这么大的数字 - 因此我无法创建数组。Double 是一个选项。我可以将输入数字存储为 double ,但我不知道如何创建 double 数字大小的数组。这就是想法 -
Scanner scanner = new Scanner(System.in);
int target = scanner.nextInt();
boolean [] array_a=new boolean [(target)];
如果目标超出 int 范围,这将不起作用。感谢任何帮助。
更新:谢谢大家。所以你只能创建一个 int 的最大范围(即 2147483648)大小的数组,对吧?内存方面并没有更早地打击我。将采取不同的方法。
【问题讨论】:
-
您可以使用内存映射文件为存储提供每个布尔值一位的存储,您需要 128 GB 的磁盘。显然您希望拥有相同数量的内存,但没有这么多内存也可以工作(但速度会降低)
标签: java