java数组如何循环添加元素
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java数组如何循环添加元素相关的知识,希望对你有一定的参考价值。
我定义一个int类型的数组,长度是五 int[] Arr1 = new int[5];
然后随便定义五个int类型的变量,把这五个元素添加到数组里面。手动添加一般是Arr1[0] = 1;这样子,如何用一个for循环把1~5这五个数放入数组呢?请指教,谢谢。
java数组循环添加元素,实例如下:
public static void main(String[] args) throws Exception
int[] intArray = new int[10];//新建一个int类型数组
for (int i = 0; i < 9; i++)
intArray[i] = i;
System.out.println("循环给int数组赋值,打印出来的值为 " + intArray[i]);
运行结果为:
for(int i=0;i<Arr1.length;i++) //Arr1.length为数组的长度
Array[i]=i+1; //这里每个下标比元素值小1;
二种方法,另定义一个int 数
int j = 1;
for(int i=0;i<Arr1.length;i++)
a[i] = j ++;
注意,如果一开始定义:
int j = 0;
那么方法体为:
for(int i=0;i<Arr1.length;i++)
a[i]=++j;
++j是先增一后计算,j++是先计算再增一 参考技术B public static void main(String[] args)
int a=9;
int b=5;
int c=2;
int d=7;
int []sult=new int[4];
for(int i=0;i<sult.length;i++)
switch(i)
case 0:
sult[i]=a;
continue;
case 1:
sult[i]=b;
continue;
case 2:
sult[i]=c;
continue;
case 3:
sult[i]=d;
continue;
default:System.out.println("有问题");
System.out.print("你要的结果是:");
for(int i=0;i<sult.length;i++)
System.out.print(sult[i]);
按照要求做的,但是把简单问题复杂化了!本回答被提问者采纳 参考技术C for(int i=0;i<Arr1.length;i++)
Array[i]=i+1;
这样就可以了....很简单。 参考技术D 用循环的话你的变量要有一定的规律才行啊,要不怎么能找到每个相应的变量。
比如:int0,int1,int2...
如何使用 Java 中的循环在 3D 数组中添加元素?
【中文标题】如何使用 Java 中的循环在 3D 数组中添加元素?【英文标题】:How can I add elements in a 3D array using loops in Java? 【发布时间】:2017-01-27 00:06:30 【问题描述】:我知道如何在 2D 数组中添加元素,但由于某种原因,我的 3D 数组无法正常工作,我做错了吗?
for (int i = 0; i < ROWS; i++)
for (int j = 0; j < COLUMNS; j++)
for (int k = 1; k < IN; k++)
myArray [i][j][k] = i + 10;
我有这样的数组 myArray = new int [COLUMNS][ROWS][IN];是对的吗?因为它应该像 array = 1,2,3,4,5,6,7,8,9;
【问题讨论】:
为什么你的 k 循环从 1 开始,而不是像其他的那样从 0 开始? 怎么了?提供更多细节、更多代码或解释会发生什么? @DM 因为我希望添加的第一个元素是 1 @Piotrowy 喜欢将此作为输出 0,10,10Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3 at ExerciseThree.printArrayStatement(ExerciseThree.java:117) at ExerciseOne。 main(ExerciseOne.java:12)myArray = new int [COLUMNS][ROWS][IN];
- 如果这是你的声明,那么i
应该可能转到COLUMNS
和j
应该可能转到ROWS
。
【参考方案1】:
这与创建 2D 数组没有什么不同。
// creating 3D array
int[][][] myArray = new int[r][c][n];
for (int i=0; i<r; i++)
for (int j=0; j<c; j++)
for (int k=0; k<n; k++)
myArray[i][j][k] = i + 10;
【讨论】:
【参考方案2】:如果这是您的数组:1, 2, 3, 4, 5, 6, 7, 8, 9,那么您不需要 3D 数组,只需要一个 2D 数组。
上述数组的元素(您提供的)是:
myArray[0][0] // 1 myArray[0][1] // 2 myArray[0][2] // 3
myArray[1][0] // 4 myArray[1][1] // 5 myArray[1][2] // 6
myArray[2][0] // 7 myArray[2][1] // 8 myArray[2][2] // 9
相应地调整您的代码:
for (int i = 0; i < ROWS; i++)
for (int j = 0; j < COLUMNS; j++)
myArray[i][j] = i + 10;
在 3D 中执行此操作
如果您要处理一些 3D 数据,您只需在当前代码中添加另一个维度。数组得到另一个维度,我们添加另一个[]
。 for 循环得到另一个维度,我们添加另一个嵌套循环。
也许我们正在跟踪 3D 网格中的值,因此我们将尺寸定义为网格的大小,如下所示:
int rows = 3;
int columns = 4;
int layers = 5;
我们像你说的那样声明我们的 3D 数组:
int[][][] my3dArray = new int[rows][columns][layers];
然后我们可以初始化这些值并开始使用我们的数组,就像您开始一样,只是这次我们不打算引用变量行和列。
相反,这次我们将引用数组的长度。这使我们的代码更加灵活。另一个程序/类可以创建一个 3d 数组并将其发送到我们的程序,即使我们事先不知道它们的网格大小(就像我们对我们的网格所做的那样),它仍然可以正常工作。
for (int i = 0; i < my3dArray.length; i++)
for (int j = 0; j < my3dArray[0].length; j++)
for (int k = 0; k < my3dArray[0][0].length; k++)
// I randomly picked some formula
my3dArray[i][j][k] = i + j * 100 + k * 10000;
【讨论】:
我明白了,我已经添加到我的原始答案中,我认为这可能是您正在寻找的。如果有帮助,请告诉我! 感谢您的帮助:)【参考方案3】:你为什么不推荐这个answer? 我希望这能帮助您解决问题。
【讨论】:
【参考方案4】:这是你的代码,在 for 循环和正确的赋值 i*10 + j + k*80;
中切换了 'COLUMNS' 和 'ROWS'
public static int [][][] myArray = new int[][][];
public static final int ROWS = 8, COLUMNS = 10, IN = 3;
public ExerciseThree()
myArray = new int [ROWS][COLUMNS][IN];
for (int i = 0; i < ROWS; i++)
for (int j = 0; j < COLUMNS; j++)
for (int k = 0; k < IN; k++)
myArray [i][j][k] = i*10 + j + k*80;
...
您在打印 3d 数组时也有错误。您应该在 103 和 115 行中将循环条件从 <=
切换到 <
。但是这种方式更好:
for (int i = 0; i < ROWS; i++)
System.out.print("");
for (int j = 0; j < COLUMNS; j++)
System.out.print("");
for (int k = 0; k < IN; k++)
myArray [i][j][k] = i*10 + j + k*80;
if (k < IN - 1)
System.out.print(",");
System.out.print(",");
System.out.print(",\n");
【讨论】:
@C.Ikongo 完整答案在这里。您可以将此答案标记为正确答案。以上是关于java数组如何循环添加元素的主要内容,如果未能解决你的问题,请参考以下文章