MOHAMED
MOHAMED

Reputation: 43588

String array definition in JAVA

Is it possible to define array in this way in JAVA, otherwise are there an alternative close this definition?

private final int CONST_0= 0;
private final int CONST_1= 1;
private final int CONST_2= 2;
private final int CONST_3= 3;
private final String[] CONST_TXTRECORDS = new String[] 
                                          {[CONST_0] = "test0",
                                          {[CONST_1] = "test1",
                                          {[CONST_2] = "test2",
                                          {[CONST_3] = "test3"};

Upvotes: 0

Views: 742

Answers (3)

Wouter Lievens
Wouter Lievens

Reputation: 4029

Perhaps you should look at enums.

http://docs.oracle.com/javase/tutorial/java/javaOO/enum.html

You can use enums as map keys, using either the generic Map classes or the specialized EnumMap which I guess is a bit more efficient.

https://docs.oracle.com/javase/8/docs/api/java/util/EnumMap.html

Upvotes: 4

sreemanth pulagam
sreemanth pulagam

Reputation: 953

public enum MyNum {
    CONST_0(new int[]{0},"test0"),
    CONST_1(new int[]{1},"test1"),
    CONST_2(new int[]{2},"test2"),
    CONST_3(new int[]{3},"test3");

    private String value;
    private int key[] ;

    MyNum(int key[],String value){
        this.value = value;
        this.key = key;
    }

    public String getValue() {
        return value;
    }

    public int[] getKey() {
        return key;
    }
}

Upvotes: 2

Sean Patrick Floyd
Sean Patrick Floyd

Reputation: 299178

What you are trying to define is not an array, but an associative array, or in Java speak, a Map.

You probably want to use a HashMap (or, as the others wrote, an enum, depending on how static your requirements are).

See: Java Tutorial > Collections Trail > The Map Interface

Upvotes: 3

Related Questions