我正在尝试创建一个方法,每次调用它时都会创建一个具有可识别名称的新数组。它应该创建大小为2的数组,在内部存储两个double值。
public static double[] newarray(double x, double y) {
double a[] = new double[2];
a[0] = x;
a[1] = y;
}
基本上是这样的,但我希望数组的名称是可变的,这样我就可以使用相同的函数创建这样的多个数组。
例如,第一个数组是a,下一个是a1,a2,a3等等。
答案 0 :(得分:1)
设置如下功能:
$2
然后这样称呼:
public static double[] newArray(double x, double y) {
return new double[]{x, y};
}
答案 1 :(得分:1)
这样我就可以使用相同的函数创建多个这样的数组
你已经可以。
将此行添加到newarray()
函数的末尾:
return a;
现在观察各种的消费者可以调用相同的功能。
double a1[] = newarray(0,1);
double a2[] = newarray(2,3);
System.out.printf("%f\n", a1[0]); // prints 0, as required
请注意,无论如何,创建数组a2
并不会替换现有的数组a1
。
所以我们看到可以多次调用相同的函数newarray()
,每次都按值返回对单独的数组的引用。
我承认 newArray()
内的,每次都会重复使用变量名a
。但由于不是成员变量,也不是静态变量:每次函数退出时,其状态都会丢失。它将不在后续调用中重复使用相同的内存。
答案 2 :(得分:0)
如果你想要数组的不同名称可以有你的理由,也许使用HashMap结构帮助实现这一点。
public static void main(String[] args) {
HashMap<String, double[]> arrays = new HashMap<>();
String name = "a";
for (int i = 0; i < 10; i++) {
arrays.put(name + i, newarray(23, 43));
}
}
public static double[] newarray(double x, double y) {
double[] a = new double[2];
a[0] = x;
a[1] = y;
return a;
}
希望这个帮助