создать массив, в котором каждая позиция представляет элемент enum - PullRequest
0 голосов
/ 17 декабря 2011

У меня есть этот класс. Я бы создал массив ex. Categoria[] cat, в котором каждое место представлено буквой типа enum. Так например 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;
}


}

Ответы [ 4 ]

4 голосов
/ 17 декабря 2011

Вы можете попробовать:

cat[LetteraCategoria.A.ordinal()]
1 голос
/ 17 декабря 2011

Вы имеете в виду массив, проиндексированный с помощью enum?Если это так, вы должны рассмотреть возможность использования EnumMap :

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

Тогда вы можете получить доступ к своим категориям, например cat.get(LetteraCategoria.A).

. Внутри это реализовано более эффективно, чем обычный HashMap.

1 голос
/ 17 декабря 2011

Ваш 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() для enum, просто перебирать результат и продолжать добавлять его в List

0 голосов
/ 17 декабря 2011

Использование 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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...