Я изо всех сил пытаюсь создать функцию, которая создаст ключ для таких параметров:
int[] pos | int[] ongoing | int[] completed
{17, 10} | {1,0,0,1} | {0,1,0,0}
pos[0] < 200
pos[1] < 200
Целые числа в массиве pos всегда будут меньше 200.
Мне нужен этот ключ, чтобы запоминать мою проблему с TSP. Я создаю ключ при каждом вызове рекурсии и проверяю, существует ли этот ключ в моем массиве заметок.
Одно решение, которое я нашел:
Map <String, Integer> states = new HashMap<String, Integer>();
А затем просто создаем строковый ключ следующим образом:
public String makeKey() {
String key = "";
key += pos[0];
key += pos[1];
for (int i = 0; i < ongoing.length; i++) {
key += ongoing[i];
key += completed[i];
}
return key;
}
И проверка наличия ключа в памятке:
State curState = new State(pos, ongoing, completed);
String key = curState.makeKey();
if (states.containsKey(key)) {
return states.get(key);
}
Но проблема в том, что назначение не позволяет мне использовать java.util. *. Поэтому сейчас я пытаюсь создать хеш-таблицу, но я не знаю, как сделать хеш-функцию для таких параметров.