web-dev-qa-db-fra.com

Java peut-il utiliser String comme clé de tableau d'index? (Ex: array ["a"] = 1;)

Java peut-il utiliser une chaîne comme clé de tableau d'index? Exemple:

array["a"] = 1;
44
Jaynova

Non.

Pour faire quelque chose comme ça, vous devez utiliser une carte.

Map<String, Integer> aMap = new HashMap<String, Integer>();
aMap.put("a" , Integer.valueOf(1));
76
Kal

Non - vous voulez qu'une carte le fasse:

Map<String, Integer> map = new HashMap<>();
map.put("a", 2);

Alors pour l'obtenir:

int val = map.get("a"); //2

Vous ne pouvez utiliser la syntaxe entre crochets que pour les tableaux, pas pour aucune des collections. Donc quelque chose comme:

int val = map["a"]; //Compile error

Sera toujours illégal. Vous devez utiliser la méthode get().

39
Michael Berry

Non, ce serait un Map en Java.

(Le type serait Map<String,Integer>.)

15
Johannes Weiss

Non, ils ne peuvent pas. Mais ils peuvent utiliser des caractères la valeur ASCII de l'alphabet sera utilisée comme index clé

Considérer

    String[] a = new String['a' + 1];
    a['a'] = "Hello";
    int[] b = new int['a' + 3];
    b['c'] = 5;

    System.out.println(a[97]);
    System.out.print(b[99]);

Cela produira

Hello
5
6
goonerify