Подтвердить что ты не робот

Может ли Java использовать String в качестве ключа массива индекса? (например: array [ "a" ] = 1;)

Может ли Java использовать String в качестве ключа массива индексов? Пример:

array["a"] = 1;
4b9b3361

Ответ 1

Нет.

Чтобы сделать что-то подобное, вам нужно использовать карту.

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

Ответ 2

Нет - вы хотите, чтобы карта сделала это:

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

Затем, чтобы получить его:

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

Вы можете использовать синтаксис квадратной скобки для массивов, а не для каких-либо коллекций. Так что-то вроде:

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

Всегда будет незаконным. Вы должны использовать метод get().

И, конечно же, в Java 7 вы можете использовать алмазный оператор, поэтому не нужны окончательные общие аргументы в первой строке:

Map<String, Integer> map = new HashMap<>();

Ответ 3

Нет, это было бы Map в Java.

(Тип будет Map<String,Integer>.)

Ответ 4

Нет, они не могут. Но они могут использовать символы, значение ASCII алфавита будет использоваться в качестве ключевого индекса

Рассмотрим

    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]);

Это приведет к выводу

Hello
5