2015-05-07 49 views
1
從我的Java類

問題,我不明白:如何在多維數組不同類型的Java

聲明可以用於存儲差事列表的一組類型爲Person的多維數組的一週中的每一天和一年中的每一週的人。

我該如何申報?它將是Dimension1人D2字符串D3 int d4 int。

我以爲你不能有不同的類型,所以也許我誤解的問題? 感謝您的幫助。

這裏的人等級:

package ProvidedClasses; 

public class Person 
{ 
private String name; 

public Person() 
{ 
    name = "John Doe"; 
} 

public String getName() 
{ 
    return name; 
} 

} 
+0

艾略特·弗裏施的回答是沿着你想要的線條。 –

+0

這似乎是一個奇怪的要求,如果你想在一個多暗淡的數組中存儲多個類型,那麼將它們全部聲明爲Object。然而,你真正存儲在這裏聽起來像是一個「雜項列表」,爲什麼類型需要成爲人...除非Person包含一個雜項列表變量(然後按照Elliott的答案) – Ron

回答

0

型人的多維數組(除非我失去了一些東西),並給予你將可以在任何給定的每週7天(並有52個星期一個年),假設你有你的組x人(10參數的緣故),可能看起來像

int x = 10; 
Person[][][] multidimensionalArrayOfPersons = new Person[x][7][52]; 

然後,你Person類應該有一些Chore(S)。

1

Java的美妙之處在於(幾乎)所有東西都是對象。所以你可能有對象的多維數組,只記得第一個索引是Person,第二個是String,第三個是Integer。

但是,數組較低,它們很少用於動態數據存儲。使用集合及其優點。目前尚不清楚你想要達到的目標,但這裏是一個可能的解決方案:

HashMap<String,HashMap<String,HashMap<String,Person>>> chore; 
//So, access could be like 
chore.get("Friday").get("25").get("Andy"); // get Andy on Friday of 25-th week. 

或者

HashMap<String,HashMap<String,ArrayList<Person>>> choreN; 
chore.get("Friday").get("25").get(12); // 12-th person on Friday 25-th week.