Ответ 1
Нет.
Чтобы сделать что-то подобное, вам нужно использовать карту.
Map<String, Integer> aMap = new HashMap<String, Integer>();
aMap.put("a" , Integer.valueOf(1));
Может ли Java использовать String в качестве ключа массива индексов? Пример:
array["a"] = 1;
Нет.
Чтобы сделать что-то подобное, вам нужно использовать карту.
Map<String, Integer> aMap = new HashMap<String, Integer>();
aMap.put("a" , Integer.valueOf(1));
Нет - вы хотите, чтобы карта сделала это:
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<>();
Нет, это было бы Map в Java.
(Тип будет Map<String,Integer>
.)
Нет, они не могут. Но они могут использовать символы, значение 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