У меня есть hashmap, который имеет его ключ String и значения, хранящиеся как List.Сравните значения Hashmap, которые хранятся в виде структуры списка
Map<String,List<Integer>> posmap = new HashMap<>();
Поскольку у меня есть несколько значений под тем же ключом. Так, например, у меня есть 4 ключа и значения:
[1681, 3523]
[276, 489]
[1527, 2865]
[300]
Также у меня есть еще один treeList, который содержит эти значения как отсортированные. Что я хочу сделать (и спрашиваю);
Iterator<Integer> itr=myTreeSet.iterator();
while(itr.hasNext())
{
int check = itr.next();
for(Object value : map2.entrySet())
{
//System.out.println("Value is :" + value);
}
}
Я хочу проверить ITR, как показано в коде с моим Hashmap entrySet и если равно возвращают Hashmap код key.Above возвращает entrySet как массив. Вкратце, как проверить itr, относятся к entrySet hashmap и принадлежат к какому ключу.
Я принимаю map1 и map2 в качестве параметра
static void game(Map map1, Map map2, Hero h, HashSet< Integer> hash)
я извиняюсь, ребята. Я не понимал, что думаю, что вы смущены. Сначала я определяю эти карты в главном func:
Map<String, Enemy> enemymap = new HashMap<>();
Map<String,List<Integer>> posmap = new HashMap<>();
И я заполнил их также в главном func. После заполнения их я отправил их в свою функциональную игру, которая в вопросе. posmap - map2. Поэтому я указываю как posmap. Извините за недопонимание. Полный код func.
static void game(Map map1, Map map2, Hero h, HashSet< Integer> hash)
{
TreeSet<Integer> myTreeSet = new TreeSet<>(); // For sorting min to max-for alignment
myTreeSet.addAll(myHashset);
System.out.println(myTreeSet);
String start = "Micheal started travel with" + " " + h.getHealth() + " " + "HP!";
Iterator<Integer> itr=myTreeSet.iterator();
while(itr.hasNext())
{
int check = itr.next();
/* for(Map.Entry<String, List<Integer>> entry : map2.entrySet())
{
if(entry.getValue() != null && entry.getValue().contains(check))
System.out.println("The key " + entry.getKey() + "contains the treeset value " + check);
} -/
}
}
Отправка из главного меню FUNC как:
game(enemymap, posmap , hero, myHashset);
Я не уверен, что понимаю вопрос, потому что он такой неряшливый. Предполагается, что 'posmap' должен быть таким же, как' map2'?Но если вы хотите проверить, является ли целое число в одном из списков значений на карте, вам нужно посмотреть все значения и использовать что-то вроде 'List.contains'. И не говорите «Значение объекта», скажем «Map.Entry> value'. В противном случае вы не сможете получить значения. –
ajb
Я думаю, что ваше разъяснение сделало вещи менее ясными. Кроме того, использование типов raw (например, «Map», вместо «Map>') в вашем списке параметров затруднит запись кода, чтобы делать правильные вещи, поскольку компилятор не знает, что ваши ключи это строки, а ваши значения - списки. –
ajb