如何在java中初始化一个巨大的数组?

如何在java中初始化一个巨大的数组?,java,Java,我需要编写一个java程序,在这里我必须初始化9000个int值。如何初始化该静态数组 我有像209547095520156305790582075918960961这样的值,等等9000个数字。。。。我想将这些数字初始化为数组 类似地,我有8个数组 我可以保存在文本文件中,并可以在执行时读取。但是解析它需要时间。请建议。您可以像大小为9000的int的普通数组一样进行良好初始化 int[] manyIntegers= new int[9000]; 现在,要将值加载到数组中,可以使用循环机制

我需要编写一个java程序,在这里我必须初始化9000个int值。如何初始化该静态数组

我有像209547095520156305790582075918960961这样的值,等等9000个数字。。。。我想将这些数字初始化为数组

类似地,我有8个数组


我可以保存在文本文件中,并可以在执行时读取。但是解析它需要时间。请建议。

您可以像大小为9000的int的普通数组一样进行良好初始化

int[] manyIntegers= new int[9000];
现在,要将值加载到数组中,可以使用循环机制

for(int i = 0; i< numbers.length; i++) {
    number[i] = // your value
}
或者


可以使用ArrayList初始化数组。例如,ArrayList a=new ArrayList;。当然,您必须包含import java.util.ArrayList

如果您确实有9000个无法以某种方式生成/计算的整数,我认为您应该采用传统的方法:

static int[] myValues = new int[] {
    3, 5, 2, 7, 100, 8, 15, 7, 5645, 134, // the first 10 ints
    // 899 more lines
}
这就像将它们写入一个单独的文本文件一样简单,但不需要加载/解析某些内容

由于静态初始值设定项代码的最大数量为65535字节,因此同一类中不应存在其他静态字段。我可以通过这种方式初始化长度为9516的int数组,但不能超过9516。

当然还有array.fill



9000整数不是很大。那么你从哪里得到这些值呢?我的意思是,你现在有没有把它们写在纸上呢?我建议读一下我有一些值,比如2095420955209562095720958209592096020961等等。。。。同样的,我还有七个阵列。当我把它放入构造函数时,它显示字节限制超过了。如果一个整数大于65535,你必须使用LONG。Not int…..我猜你的意思是int[]Not IntI,它的值类似于2095420955209562095720958209592096020961等等。。。。同样的,我还有七个阵列。当我把它放入构造函数时,它显示字节限制超过了。如果一个整数大于65535,你必须使用LONG。Not int…我得到的是这个错误,不是int内存错误。常量太多,配置的常量池将超过65536个条目。-1:OP询问如何填充数组。有必要使用Random吗?好吧,这可能是一个很好的例子,去除否定votePeople可以用不同的方式回答…thnx…@Jayan..投票给不同的视角我有像2095420955209562095720958209596020961这样的值。。。。我想将这些数字初始化为数组。类似地,我有8个数组。@Rajeshkumar你必须做一些像整数[index]=20954;其中index是数组中的位置。所以,若你们想让数组中的第一个项包含20960,你们需要做整数[0]=20960;请记住,数组以索引0开头。对不起,如果我分析字符串,执行它将花费更多的时间。同样类似的是,我有8个数组。值仅为静态。@Rajeshkumar您可以更新您的问题。根据您的评论,您有类似2095420955209562095720958209592096020961的值,这些值是顺序的,您可以轻松使用循环逻辑。正如您所提到的,您还有7个这样的数组,您可以使用多个循环来填充一个整数数组,即数字。注意整数限制,即65535,然后使用long。更新你的问题,让我知道,我会跟进。希望你能得到你想要的。我在这里输入的值是按顺序排列的,但不是全部。@Rajesh那么,为什么不将数组初始化为int[]numbers={134323244,31413,…}。如果你不能做到这一点,字符串操作就是你的方法。你还指望什么呢?我将在java 1.4的低版本下执行。ArrayList将无法工作,因为它会超过65535字节的限制。我认为,您在方法中声明了一个局部变量。由于限制,这不起作用。改用静态变量!我错了一部分。静态初始值设定项代码也有65535字节的限制。但9000整数是可行的。我已经编辑了我的答案来解决这个问题。它会在Java1下运行吗。4@Rajesh-建议Java 1.2中存在数组。我找不到任何可供以后填写的参考资料。
for(int i = 0; i< numbers.length; i++) {
    number[i] = // your value
}
// String input = "2,5,23,523"; // 9000 integers
String[] strArray = input.split(",");
int[] numbers = new int[strArray.length];
for(int i = 0; i < strArray.length; i++) {
    numbers[i] = Integer.parseInt(strArray[i]);
}
int[] numbers = { 2, 5, 23, 323, 2342, 1351 }; // 9000 numbers
int[] manyIntegers= new int[9000];

for(int i = 0; i < manyIntegers.length; i++){
    manyIntegers[i] = YOUR_VALUE;
}
int[] array= new int[9000];
Random random = new Random();

for (int i =0; i< array.length; i++)
{
     array[i] = random.nextInt(9000)+1;
}
static int[] myValues = new int[] {
    3, 5, 2, 7, 100, 8, 15, 7, 5645, 134, // the first 10 ints
    // 899 more lines
}
int[] array = new int[9000];
// All of them.
Arrays.fill(a,2);
// Just some of them.
Arrays.fill(a,100,200,6);