Хранение информации из предыдущих переменных и выводов - PullRequest
0 голосов
/ 07 марта 2020

Создание небольшой программы, в которую я ввожу Word / s, и она использует хэш-коды, превращая ее в числа, чтобы я мог использовать эти числа для подобных семенам в играх, таких как Rimworld или Minecraft.

В настоящее время я использую :

String levelSeed= "hello";
int levelSeedNum = levelSeed.hashCode();
System.out.println(levelSeed);

Что прекрасно работает. Но я думал о том, чтобы держать Word / s и какой хэш-код есть в Списке, чтобы я мог видеть, что я уже использовал. Кажется, я не могу понять, как это сделать, так как при добавлении нового Word / s он сбрасывает список, который у меня есть.

ArrayList<String> ls = new ArrayList<String>();
ls.add(levelSeed);
System.out.println(ls);

Что было бы лучшим способом, чтобы список не сбрасывался каждый раз, когда я выполнить код?

1 Ответ

1 голос
/ 07 марта 2020

Ваша проблема в том, что вы присваиваете ls новому списку каждый раз, когда у вас появляется новое семя:

ArrayList<String> ls = new ArrayList<String>();

Это означает, что вы потеряете все, что было в старом списке. Вам нужно просто инициализировать этот список только один раз, а затем добавить в него несколько элементов:

ArrayList<String> ls = new ArrayList<String>(); //this creates a new, empty list
//... do stuff
ls.add(aSeed);
//... do stuff
ls.add(anotherSeed);
//ls now has two elements in it
ls = new ArrayList<String>();
//and now it's empty

РЕДАКТИРОВАТЬ

Если вы хотите создать список семян за семенами, вам нужно сделать это в некотором роде l oop. Вот простой пример:

final int NUM_SEEDS = ...;
for (int i = 0; i < NUM_SEEDS; i++) {
    String seed = ... //collect a seed by whatever means you're using
    lst.add(seed);
}
//lst.size() is now NUM_SEEDS.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...