2016-11-13 71 views
-3

我想创建一个方法,每次调用它时都会创建一个带有可识别名称的新数组。它应该创建存储两个double值的大小为2的数组。每次调用都会创建新数组的方法?

public static double[] newarray(double x, double y) { 
    double a[] = new double[2]; 
    a[0] = x; 
    a[1] = y; 
} 

基本上是这样的,但我想数组的名称是可变的,这样我可以创建多个数组,像这样使用相同的函数。

例如,第一个数组将是a,下一个a1,a2,a3等等。

+1

数组没有一个名字,变量做,但他们不会帮助你在这里(如果你没有考虑到像'A = newarray(... 。); a1 = newarray(...);')。 – Tom

+0

你不明白一些重要的东西(不确定究竟是什么,可能是字段和变量之间的区别) - 这个问题没有意义。 – fdreger

+0

如果我的问题制定得不好,最后让你感到困惑,我很抱歉,我对编程很陌生。尽管如此,我认为我能够用其他用户提供的建议来解决我的问题。感谢您的时间。 – schlafen

回答

1

设置功能是这样的:

public static double[] newArray(double x, double y) { 
    return new double[]{x, y}; 
} 

然后调用它像这样:

double[] myArray1 = newArray(10d, 20d); 
double[] myArray2 = newArray(3d, 4d); 
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每次都会重新使用。但是由于它是而不是成员变量,也不是一个静态变量:每当函数退出时,其状态将丢失。它将而不是在后续调用中重新使用相同的内存。

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; 
    } 

希望这有助于

相关问题