У меня есть конструктор в классе, где я инициализирую хеш-таблицу, состоящую из целого числа и списка строк.Я заполняю ключи числами от 0 до того, что нужно, и их соответствующие значения - это векторы, которые я заранее создаю в конструкторе.Мне нужно переставить их случайным образом (просто перетасовать их любым возможным способом), чтобы при использовании getQuest () я получил случайную пару ключ-значение, которая оказалась на последнем месте хеш-таблицы, и удалил еев то же время.
public class Quest {
private Hashtable<Integer, List<String>> quests;
public Quest()
{
this.quests = new Hashtable<>();
List<String> mushrooms = new Vector<>();
mushrooms.add("Choose a mushroom, but be careful not to be poisoned");
mushrooms.add("mushroom1");
mushrooms.add("mushroom2");
mushrooms.add("mushroom3");
List<String> weapons = new Vector<>();
weapons.add("Choose a weapon that will help you survive");
weapons.add("knife");
weapons.add("rifle");
weapons.add("sword");
this.quests.put(0, mushrooms);
this.quests.put(1, weapons);
}
public List<String> getQuest()
{
return quests.remove(quests.size());
}
}
Кроме того, в случае, если это не очень хорошая идея, лучше использовать rand или что-то в этом роде и получить случайную пару откуда-нибудь из хеш-таблицы для возврата (хотя такжеконечно, удалив).