2016-11-13 70 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; 
    } 

希望這有助於

相關問題