2011-12-17 3 views
0

私はこのクラスを持っています。私は配列exを作成します。 Categoria[] catでは、すべての場所が列挙型の文字で表されます。したがって、例えばcat[0=A], cat[1=B]などです。どうすればいいですか?すべての位置がenumの要素を表す配列を作成します

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

残念ながら、誰も私が説明したいことを理解していませんでした。私はすべての位置がオブジェクトである配列を作成しますカテゴリと配列のすべての位置はA、B、C、D、E、Fです – Mazzy

答えて

4

あなたが試すことができます。

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

多分それは私が探していると思うのです – Mazzy

1

あなたのEnum

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

列挙型で配列のインデックスが作成されていますか?もしそうなら、あなたはEnumMapを使用して検討する必要があります。

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

次に、あなたcat.get(LetteraCategoria.A)のようなあなたのカテゴリにアクセスすることができます。

内部的には、通常のHashMapよりも効果的に実装されています。

+0

これは残念なことに私は配列のみを使用する – Mazzy

関連する問題