有没有办法在java中创建一个带有一些初始化数字的数组,然后向其中添加随机数

有没有办法在java中创建一个带有一些初始化数字的数组,然后向其中添加随机数,java,arrays,random,numbers,Java,Arrays,Random,Numbers,我试图创建一个数组,其中7个数字是手动输入的,43个是随机的 for (int i = 7; i < arr5.length; i++) { arr3[i] = (int) (Math.random() * 1500); } 我可以用C语言来做,但我在java中面临一个挑战:当数组打印出来时,手动输入的7个数字总是以零的形式出现 int arr3[]= {1,2,3,4,5,6,7}; // this is where I created the array arr3=new in

我试图创建一个数组,其中7个数字是手动输入的,43个是随机的

for (int i = 7; i < arr5.length; i++) 
{
arr3[i] = (int) (Math.random() * 1500);
} 
我可以用C语言来做,但我在java中面临一个挑战:当数组打印出来时,手动输入的7个数字总是以零的形式出现

int arr3[]= {1,2,3,4,5,6,7}; // this is where I created the array 
arr3=new int[50];
for (int i = 7; i < arr5.length; i++) 
{
arr3[i] = (int) (Math.random() * 1500);
} 
//这就是我试图填充它的地方

for (int i = 7; i < arr5.length; i++) 
{
arr3[i] = (int) (Math.random() * 1500);
} 
for(int i=7;i

我希望前几个数字是手动输入的,其余的是随机创建的

这是因为你需要
arr3=newint[50]将列表中的每个值重置为0,并将数组大小设置为50。这里
intarr3[]={1,2,3,4,5,6,7}您正在将大小设置为7。您可以这样做,例如:

for (int i = 7; i < arr5.length; i++) 
{
arr3[i] = (int) (Math.random() * 1500);
} 
int arr3[]=新int[50];
arr3[0]=1;
arr3[1]=2;
arr3[2]=3;
arr3[3]=4;
arr3[4]=5;
arr3[5]=6;
arr3[6]=7;
对于(int i=7;i
这是因为你做了
arr3=newint[50]将列表中的每个值重置为0,并将数组大小设置为50。这里
intarr3[]={1,2,3,4,5,6,7}您正在将大小设置为7。您可以这样做,例如:

for (int i = 7; i < arr5.length; i++) 
{
arr3[i] = (int) (Math.random() * 1500);
} 
int arr3[]=新int[50];
arr3[0]=1;
arr3[1]=2;
arr3[2]=3;
arr3[3]=4;
arr3[4]=5;
arr3[5]=6;
arr3[6]=7;
对于(int i=7;i
您几乎完全正确了。你应该做的是-

for (int i = 7; i < arr5.length; i++) 
{
arr3[i] = (int) (Math.random() * 1500);
} 
int arr3[] = new int[50]; //creating a new array
int arr3[] = {1,2,3,4,5,6,7};
您所做的错误是,您正在创建一个大小为
7
的数组
arr3
,然后使用大小
50
重新创建它,因此在内存中,当您创建大小为
50
的新数组时,前面的值将被替换为
0
,就像在java中一样,数组的每个元素都默认初始化使用
0

for (int i = 7; i < arr5.length; i++) 
{
arr3[i] = (int) (Math.random() * 1500);
} 

现在您可以轻松地填充它。我还建议使用
Java.util.Random
类来生成随机数。您可以阅读更多有关它的信息。

您几乎完全正确了。你应该做的是-

for (int i = 7; i < arr5.length; i++) 
{
arr3[i] = (int) (Math.random() * 1500);
} 
int arr3[] = new int[50]; //creating a new array
int arr3[] = {1,2,3,4,5,6,7};
您所做的错误是,您正在创建一个大小为
7
的数组
arr3
,然后使用大小
50
重新创建它,因此在内存中,当您创建大小为
50
的新数组时,前面的值将被替换为
0
,就像在java中一样,数组的每个元素都默认初始化使用
0

for (int i = 7; i < arr5.length; i++) 
{
arr3[i] = (int) (Math.random() * 1500);
} 
现在您可以轻松地填充它。我还建议使用
Java.util.Random
类来生成随机数。您可以阅读更多信息。

此声明:

for (int i = 7; i < arr5.length; i++) 
{
arr3[i] = (int) (Math.random() * 1500);
} 
arr3 = new int[50];
正在重新声明
arr3
,这意味着使用
arr3
初始化的任何内容都将被丢弃,这就是为什么您会看到默认的
int
值(
0

for (int i = 7; i < arr5.length; i++) 
{
arr3[i] = (int) (Math.random() * 1500);
} 
您可以通过将
输入
复制到较大的数组中来解决此问题:

for (int i = 7; i < arr5.length; i++) 
{
arr3[i] = (int) (Math.random() * 1500);
} 
int[] arr3 = new int[50];
int[] input = { 1, 2, 3, 4, 5, 6, 7 };

for (int i = 0; i < input.length; i++) {
    arr3[i] = input[i];
}

for (int i = input.length; i < arr3.length; i++) {
    arr3[i] = (int) (Math.random() * 1500);
}
int[]arr3=新的int[50];
int[]输入={1,2,3,4,5,6,7};
for(int i=0;i
此声明:

for (int i = 7; i < arr5.length; i++) 
{
arr3[i] = (int) (Math.random() * 1500);
} 
arr3 = new int[50];
正在重新声明
arr3
,这意味着使用
arr3
初始化的任何内容都将被丢弃,这就是为什么您会看到默认的
int
值(
0

for (int i = 7; i < arr5.length; i++) 
{
arr3[i] = (int) (Math.random() * 1500);
} 
您可以通过将
输入
复制到较大的数组中来解决此问题:

for (int i = 7; i < arr5.length; i++) 
{
arr3[i] = (int) (Math.random() * 1500);
} 
int[] arr3 = new int[50];
int[] input = { 1, 2, 3, 4, 5, 6, 7 };

for (int i = 0; i < input.length; i++) {
    arr3[i] = input[i];
}

for (int i = input.length; i < arr3.length; i++) {
    arr3[i] = (int) (Math.random() * 1500);
}
int[]arr3=新的int[50];
int[]输入={1,2,3,4,5,6,7};
for(int i=0;i
问题在于,您正在创建一个新的空数组来替换第一个数组

for (int i = 7; i < arr5.length; i++) 
{
arr3[i] = (int) (Math.random() * 1500);
} 
 int arr3[]= {1,2,3,4,5,6,7}; // new int[7]; populated with the values
 arr3 = new int[50]; // new, empty, array and replacing the first
我建议使用
System.arraycopy
将值复制到数组中:

for (int i = 7; i < arr5.length; i++) 
{
arr3[i] = (int) (Math.random() * 1500);
} 
public static void main(String[] args) {

    // create the array
    int[] array = new int[50];

    // copy initial values into the array
    int[] values = {1,2,3,4,5,6,7};
    System.arraycopy(values, 0, array, 0, values.length);

    // populate random values
    for (int i = values.length; i < array.length; i++) {
        array[i] = (int) (Math.random() * 1500);
    }

    // print the array
    System.out.println(Arrays.toString(array));
}
publicstaticvoidmain(字符串[]args){
//创建数组
int[]数组=新的int[50];
//将初始值复制到数组中
int[]值={1,2,3,4,5,6,7};
数组复制(值,0,数组,0,值,长度);
//填充随机值
for(int i=values.length;i
问题在于,您正在创建一个新的空数组来替换第一个数组

for (int i = 7; i < arr5.length; i++) 
{
arr3[i] = (int) (Math.random() * 1500);
} 
 int arr3[]= {1,2,3,4,5,6,7}; // new int[7]; populated with the values
 arr3 = new int[50]; // new, empty, array and replacing the first
我建议使用
System.arraycopy
将值复制到数组中:

for (int i = 7; i < arr5.length; i++) 
{
arr3[i] = (int) (Math.random() * 1500);
} 
public static void main(String[] args) {

    // create the array
    int[] array = new int[50];

    // copy initial values into the array
    int[] values = {1,2,3,4,5,6,7};
    System.arraycopy(values, 0, array, 0, values.length);

    // populate random values
    for (int i = values.length; i < array.length; i++) {
        array[i] = (int) (Math.random() * 1500);
    }

    // print the array
    System.out.println(Arrays.toString(array));
}
publicstaticvoidmain(字符串[]args){
//创建数组
int[]数组=新的int[50];
//将初始值复制到数组中
int[]值={1,2,3,4,5,6,7};
数组复制(值,0,数组,0,值,长度);
//填充随机值
for(int i=values.length;i
其他答案都直接回答了您的问题(很好),因此我想建议另一种方法

for (int i = 7; i < arr5.length; i++) 
{
arr3[i] = (int) (Math.random() * 1500);
} 
您似乎不需要特定的数组长度(在第二个循环中不直接使用),因此可能会发现使用列表更容易,然后在完成后将其转换为数组

for (int i = 7; i < arr5.length; i++) 
{
arr3[i] = (int) (Math.random() * 1500);
} 
List<Integer> list = new ArrayList<>();
for(int i=1; i<=7; i++) {
    list.add(i);
}

for (int i = 7; i < arr5.length; i++) {
    list.add((int) (Math.random() * 1500));
}

int[] arr3 = list.toArray(new int[list.size()]);
List List=new ArrayList();

对于(inti=1;i其他答案都直接回答了您的问题,因此我想建议另一种方法

for (int i = 7; i < arr5.length; i++) 
{
arr3[i] = (int) (Math.random() * 1500);
} 
您似乎不需要特定的数组长度(在第二个循环中不直接使用),因此可能会发现使用列表更容易,然后在完成后将其转换为数组

for (int i = 7; i < arr5.length; i++) 
{
arr3[i] = (int) (Math.random() * 1500);
} 
List<Integer> list = new ArrayList<>();
for(int i=1; i<=7; i++) {
    list.add(i);
}

for (int i = 7; i < arr5.length; i++) {
    list.add((int) (Math.random() * 1500));
}

int[] arr3 = list.toArray(new int[list.size()]);
List List=new ArrayList();
对于(int i=1;i