2016-09-21 69 views
0

有一種方法,您可以使Array s在另一個Array/ArrayList,是不同類型?例如:如果我想製作一個ArrayList,其中包含類的名稱,並且在每個索引內部有一個Array及其統計信息。陣列類型列表

+1

儘管可以創建一個Object數組,但它不是一個處理數據的好數據結構。 –

+0

我建議你看字典,你可以用你喜歡的任何方式使用索引,在那裏你可以使用像列表(或Java變體)的值。但它並不是特別有效。 我建議你提供更多的信息,因爲通常有更好的方式來做事。 – Nickvda

+0

@DavideLorenzoMARINO創建像我之前提到的類的有效方法是什麼? – AnUnnoticedPotato

回答

0

如果你只需要處理20個不同的數據結構,就可讀性而言最好的方法是爲每個數據結構創建一個自定義類。最終考慮創建類和通用接口的層次結構。


如果你需要建立一個通用的數據結構來保存不同類型的數據,你可以使用不同的技術。

如果你不在乎字段的順序,你可以用一個簡單的地圖類似下面的:

Map<String, Object> complexObject = new HashMap<>(); 
complexObject.put("name", "John"); 
complexObject.put("lastName", "Smith"); 
complexObject.put("age", 30); 

如果需要十個分量字段的順序,你可以使用LinkedHashMap

Map接口的哈希表和鏈表實現,具有可預測的迭代順序。

此數據結構也可以按住嵌套級別,例如:

Map<String, Object> person = new HashMap<>(); 
person.put("name", "John"); 
person.put("lastName", "Smith"); 
person.put("age", 30); 

Map<String, Object> address = new HashMap<>(); 
address.put("city", "Rome"); 
address.put("country", "Italy"); 

person.put("address", address); 

List<String> preferredColors = new ArrayList<>(); 
preferredColors.add("Red"); 
preferredColors.add("Blue"); 

person.put("preferredColors", preferredColors); 

最終,你也可以考慮隱藏地圖自定義類「ComplexData」,揭露僅方法來添加或內設置一個屬性並獲取一個屬性,最終添加特定的方法來檢索原始數據類型,因此您不需要手動轉換返回的值。