Может ли Java использовать String в качестве ключа массива индекса? (например: array [ "a" ] = 1;) Может ли Java использовать String в качестве ключа массива индексов? Пример: array["a"] = 1; Ответ 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
Ответ 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<>();
Ответ 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