2013-02-27 2 views
2

Я ищу, чтобы сделать то, что я объясню ниже, или что-то подобное для программы, которую я пишу. До этой части моей программы у меня есть массив, в котором хранятся имена игроков, играющих в игру.Задайте имя массива как значение переменной String

Я хочу создать цикл for, который будет инициализировать новый массив, основанный на количестве игроков, которые есть, и назовите этот новый массив именем этого игрока.

Таким образом, вы получите лучшее представление:

for (int i = 0; i < nPlayers; i++) { 
    String name = playerNames[i]; 
    int[] name = new int[nCategories]; 
} 

Таким образом, вы можете видеть, что я пытаюсь присвоить новый массив на основе от имени чего-то я хранится в другом массиве. Есть какой-либо способ сделать это? Или что-то подобное, которое, я полагаю, может быть лучше/эффективнее?

Это Java-программа кстати.

Спасибо!

+0

Ваш код не имеет смысла. Что ты пытаешься сделать? На английском. – Bohemian

+0

Он пытается динамически устанавливать имена переменных. – chm

+0

Я вижу сборник погрешность. Две переменные, объявленные одним и тем же идентификатором, например, имя строки и имя int []. –

ответ

3

Я хочу начать с того, отметив, что Ян делает действительную точку. Если вы хотите, чтобы динамически получать переменную, используя String, карта является отличным кандидатом. Создайте карту, в которой используется значение String для ключа и массив int []. Затем вы можете вызвать int [] из карты, используя свой String-ключ.

Map<String, int[]> players = new Map<String, int[]>(); 
String myname = "myname"; 
int[] myInts = {0,1,2}; 
players.put(myname, myInts); 
int[] intArrayForPlayer = players.get(myname); 

Однако основное преимущество использования Java заключается в том, что это объектно-ориентированный язык. Вы можете решительно рассмотреть возможность использования классов для достижения своей цели. Вы можете создать класс «Игроки с переменными класса» для хранения всех данных, которые вам понадобятся для каждого Игрока. Затем вы можете создать объекты Player myPlayer = new Player(); и использовать их для хранения всей вашей информации.

Вы можете использовать массив или массив ArrayList для хранения всех объектов вашего игрока.

3

Существует не совсем чистый способ создания переменной с динамическим именем, как вы пытаетесь сделать. Возможно, хорошим вариантом было бы иметь карту и создать новый ключ на карте для каждого игрока, с именем игрока в качестве ключа и значением в качестве нового массива Int.