Мой вопрос в том, что если у меня есть массив вроде
String [] varNames=new String[numOfVariables];
for(int i=0;i<numOfVariables;i++){
varNames[i]=scan.next();
}
и я хочу создать новый массив целых чисел, который будет иметь имя записи, которое находится в varNames [1].
например, если в месте varNames [1], "рыба" сохраняется, я хочу присвоить имя, которое находится в varNames [1], новому массиву целых чисел, которые я собираюсь сделать.
подобно
int [] verNames[i]=new int[20];
Но я не знаю, как я могу это сделать..... Любые идеи будут действительно оценены. Благодарю.
Вы ищете Map<String,T>
- где T
- ваш тип переменной.
Это "путь", поскольку java не является динамическим языком привязки, и все имена переменных (и типы) должны быть известны во время компиляции.
int [] verNames[i]=new int[20];
Нет. Это невозможно. Имена переменных не должны быть динамическими. Они строго типизированы.
Из вашего вопроса:
int [] verNames[i]=new int[20];
Это невозможно. Вы не можете создавать переменные во время выполнения.
Динамические имена переменных нельзя присвоить. Также вам нужно объявить имена переменных еще до компиляции программы.
Однако, если вы хотите, вы можете сделать это так, чтобы иметь несколько переменных, хранящихся в коллекции.
Map<String, Integer> map = new HashMap<String, Integer>();
for(int i = 0; i < 2; i++)
{
map.put("n1", i);
}
Java не поддерживает динамические переменные, они должны быть объявлены в исходном коде (строго типизированы).
Вы можете работать с картами, чтобы получить что-то близкое к тому, что вы пытаетесь сделать, посетить Map
API.
Map<String, List<Integer>>
для этого