返回数组和循环
问题描述:
我是Java新手,被分配设计一个程序,该程序从文件抓取输入并将其插入到数组的某些部分,然后导出该数据。我有代码将文件读入字符串数组。返回数组和循环
两个问题:
1)如何创建一个循环来创建具有以下空白数据编号列表? (请参阅下面的代码片段)我试图创建一个如下所示的列表:
1 0000 0000 00000 ...
2 0000 0000 00000 ...
您是否看到我的循环下面有任何问题?
for (int x = 0; x < array.length; x++) {
array[x] = Integer.toString(y);
y++;
while (x < 16) {
x++;
array[x] = "00000";
}
}
2.)我可以使用单个方法返回两个数组值吗?我想填充两个数组,然后将它们的值返回给其他方法使用。我找到了一种我可以使用的方法,但我不确定如何正确实施它。 我在下面的代码片段:
public static Object[] rtrStr() {
//...blah blah
return new Object[]{array1, array2};}
答
2)您可以返回数组的数组(或List
),如果你想:
public static String[][] rtrStr() {
// ...blah blah
String[][] arr = new String[][2]; // syntax might not be exactly correct
arr[0] = array1;
arr[1] = array2;
}
注:我不确定有关确切的语法,但这个想法是合理的。就个人而言,我宁愿使用List
来代替。
就是说,你应该考虑每个数组中数据的含义。创建一个封装数组并定义语义的自定义类是有意义的。这也使得从任何方法返回一个数组或列表变得更容易,因为这些元素将是您新的自定义类的对象。
答
您是否看到我的循环下面有任何问题?
是的,倍数:你的代码就是我所说的坏代码。即使它做到了你想要的(并且我不确定这一点),对于这样一个简单的任务来说,这是非常难以理解的。
- 您正在使用
x
和y
作为反变量名称。当涉及多个柜台时,请勿这样做!很难理解具体的计数器是什么。 - 你的内部循环与外部循环的反变量相混淆。如果这是由设计,不要有史以来做到这一点。它使代码很难理解。
另外,如果数组应该像表格(行和列)那样保存类似于您的示例输出中的内容,则需要一个二维数组。
我可以用一个方法返回两个数组值?
是的,为什么不呢?你实际上返回一个阵列与两个值。但是,您可以从单一方法而不是返回两个阵列。
您的循环是否符合您的期望?问题1的 –
,什么是y?什么是幻数16?对于问题2,你有很多方法来做到这一点。 array [] [],List,Map – Kent
我想要一个循环来完成上面的列表。为了保持数组索引的顺序,我放入了y变量,但我没有从中得到我想要的。 –