использование записи в строковом массиве в качестве имени для создания нового массива Java

1

Мой вопрос в том, что если у меня есть массив вроде

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

Но я не знаю, как я могу это сделать..... Любые идеи будут действительно оценены. Благодарю.

  • 0
    Я думаю, что он хочет, чтобы массив int назывался «fish». Может быть, вы должны использовать что-то вроде Map<String, List<Integer>> для этого
  • 0
    Я просто хочу использовать имя этого массива int как "fish" .... like int [] fish = new int [20];
Показать ещё 3 комментария
Теги:
arrays

5 ответов

6

Вы ищете Map<String,T> - где T - ваш тип переменной.

Это "путь", поскольку java не является динамическим языком привязки, и все имена переменных (и типы) должны быть известны во время компиляции.

1
int [] verNames[i]=new int[20];

Нет. Это невозможно. Имена переменных не должны быть динамическими. Они строго типизированы.

1

Из вашего вопроса:

int [] verNames[i]=new int[20];

Это невозможно. Вы не можете создавать переменные во время выполнения.

1

Динамические имена переменных нельзя присвоить. Также вам нужно объявить имена переменных еще до компиляции программы.

Однако, если вы хотите, вы можете сделать это так, чтобы иметь несколько переменных, хранящихся в коллекции.

Map<String, Integer> map = new HashMap<String, Integer>();
for(int i = 0; i < 2; i++)
{
  map.put("n1", i);
}
1

Java не поддерживает динамические переменные, они должны быть объявлены в исходном коде (строго типизированы).

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню