![](/img/trans.png)
[英]Java: How can I loop through n number of arrays in Java? The arrays are passed as one Object array
[英]How can i loop through parameter variables passed by function in java
这是我的初始代码,
public class Main {
public static void main(String[] args) {
// --------Declaring variables--------
int arrLength = 6;
String[] arr1 = new String[arrLength];
String[] arr2 = new String[arrLength];
String[] arr3 = new String[arrLength];
joinArrays(arr1,arr2,arr3);
}
private static void joinArrays(String[] arr1, String[] arr2, String[] arr3){
System.out.print("Array 1 : ");
System.out.println(String.join(",",arr1));
System.out.println("");
System.out.print("Array 2 : ");
System.out.println(String.join(",",arr2));
System.out.println("");
System.out.print("Array 3 : ");
System.out.println(String.join(",",arr3));
System.out.println("");
}
但我需要循环执行此操作(不使用太多打印方法)。 我尝试了以下方式,但它只打印出来
Array 1 : arr1
Array 2 : arr2
同样,它不会加入传递给参数的列表。
private static void joinArrays(String[] arr1, String[] arr2, String[] arr3){
for(int i = 0; i<3;i++){
System.out.print("Array "+i+" : ");
System.out.println(String.join(",","arr"+i));
System.out.println("");
}
}
我怎样才能轻松完成这个循环的事情。
没有(简单的)方法可以遍历传递给 Java 方法的参数。
如果您想防止重复自己,那么您可以将代码放在一个单独的方法中,并使用参数变量一次调用一个:
private static void joinArrays(String[] arr1, String[] arr2, String[] arr3) {
joinArray("Array 1 : ", arr1);
joinArray("Array 2 : ", arr2);
joinArray("Array 3 : ", arr3);
}
private static void joinArray(String label, String[] arr) {
System.out.print(label);
System.out.println(String.join(",", arr));
System.out.println("");
}
方法的参数是 VarArgs 的另一种方法。 可以将任意数量的数组(在合理范围内)传递给该方法。 这与将命令行参数传递给应用程序的main()
方法的方式非常相似,只是这里提供的 VarArgs 的每个元素都以逗号 (,) 分隔。 一个典型的方法调用是:
joinArrays(arr1, arr2, arr3, arr4, arr5, and so on);
如果您愿意,您可以在单个 2D 数组中传递所有数组,因为 2D 数组是数组数组。 这方面的一个例子是:
String[][] array2D = new String[3][];
int arrLength = 6;
String[] arr1 = new String[arrLength];
String[] arr2 = new String[arrLength];
String[] arr3 = new String[arrLength];
array2D[0] = arr1;
array2D[1] = arr2;
array2D[2] = arr3;
joinArrays(array2D);
控制台窗口的最终结果将完全相同,即:
Array 1:
null, null, null, null, null, null
Array 2:
null, null, null, null, null, null
Array 3:
null, null, null, null, null, null
当然,所有数组中的元素都将为空,因为在将它们传递给此方法之前,这些数组中从未有任何内容。
这是方法。 阅读代码中的注释。 如果您删除方法中的注释,您会发现它实际上只有三行代码:
private static void joinArrays(String[]... arrays) {
/* Declare a variable and initialize it to hold
the System's Line Separator character sequence. */
String ls = System.lineSeparator();
/* Iterate through all supplied arrays however
many there are...it doesn't matter). */
for (int i = 0; i < arrays.length; i++) {
/* Join the elements of the current array being
processed and print the result of the Joining. */
System.out.print("Array " + (i+1) + ": " + ls
+ String.join(", ",arrays[i]) + ls + ls);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.