2011-12-17 71 views
0

我有這個類。我會創建一個數組前例。 Categoria[] cat其中每個地方都由枚舉類型的字母表示。所以例如cat[0=A], cat[1=B]等。我該怎麼做?創建一個數組,其中每個位置表示一個枚舉元素

public class Categoria { 

public enum LetteraCategoria{ 

    A,B,C,D,E,F; 

    public static String getVerbose(){ 
     return ""; 
    } 
} 

private LetteraCategoria categoria; 

private Hashtable<String,Autovettura> listaauto; 

public Categoria(LetteraCategoria categoria){ 

    this.categoria = categoria; 

    listaauto = new Hashtable<String,Autovettura>(); 
} 

public LetteraCategoria getCategoria() { 

    return categoria; 
} 

public Hashtable<String, Autovettura> getListaauto() { 

    return listaauto; 
} 


} 
+0

不幸的是,沒有人明白我在尋找什麼來解釋。我會創建一個數組,其中每個位置是一個對象Categoria和數組的每個位置是A,B,C,D,E,F – Mazzy 2011-12-17 10:33:59

回答

4

你可以試試:

cat[LetteraCategoria.A.ordinal()] 
+0

也許這是我認爲的想法 – Mazzy 2011-12-17 10:35:53

1

你枚舉

public enum LetteraCategoria{ 

    A,B,C,D,E,F; 

    public static String getVerbose(){ 

     return ""; 
    } 
} 

您的陣列

LetteraCategoria[] arr = new LetteraCategoria[3]; 
arr[0] = LetteraCategoria.A; 
arr[1] = LetteraCategoria.B; 
. 
. 

更好的方式

最好有一個ArrayList和枚舉使用values()方法,只是通過結果迭代並不斷增加其進入List

0

使用values()

final LetteraCategoria[] tmp = LetteraCategoria.values(); 

final String[] stringValues = new String[tmp.length]; 

for (int i = 0; i < tmp.length; i++) 
    stringValues[i] = tmp[i].toString(); 
1

你的意思是用enum索引數組嗎?如果是這樣,你應該考慮使用EnumMap

Map<LetteraCategoria, Categoria> cat = new EnumMap<LetteraCategoria, Categoria>(LetteraCategoria.class); 

然後你就可以訪問你的類別,如cat.get(LetteraCategoria.A)

它在內部比普通的HashMap更有效。

+0

這將是最好的解決方案,不幸的是我必須只使用一個數組 – Mazzy 2011-12-17 10:37:08

相關問題