我有散列表,它的關鍵字是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返回作爲數組。簡單地說,如何檢查它屬於hashmap的entrySet並屬於哪個鍵。
我正在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。抱歉混淆。 功能的完整代碼。
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>值'。否則,您將無法檢索這些值。 –
ajb
我認爲你的澄清使事情不太清楚。此外,在參數列表中使用原始類型(如'Map',而不是'Map>')將使編寫代碼難以做正確的事情,因爲編譯器不知道您的密鑰是字符串,你的值是列表。 –
ajb