我有以下代码,我想将结果插入数据库但是现在我只想打印出带有值的键。
在此代码之前使用键设置HashMap,工作正常。
以下代码循环遍历tableView,从列中获取项目,如果项目等于哈希映射中的键,则它将dogsID作为值放入hashmap中。
// loop through tableView items
for (Dog item : BookDogTableView.getItems()) {
// cell data is not null
if ((BookDogSelectRunCol.getCellData(item) != null)) {
// loop through map
for (Integer key : hashMap.keySet()) {
// if chosen run ID equals key
if (BookDogSelectRunCol.getCellData(item)) {
// put dog in map
BookingInformation.hashMap.put(key,
item.getDogID());
}
}
}
for (Integer keyprint : hashMap.keySet()) {
if (hashMap.get(keyprint) != 0) {
System.out.println("RUn ID : " + keyprint + " DogID : "
+ hashMap.get(keyprint));
}
}
}
但是,这会使用重复键打印到屏幕。
有没有办法从地图中删除重复的键值或更改当前代码以避免重复的键值对
答案 0 :(得分:7)
HashMap
中没有重复的密钥。
事实证明,您正在for
循环内打印。显示问题的简化代码:
for (Dog item : BookDogTableView.getItems()) {
// cell data is not null
...
for (Integer keyprint : hashMap.keySet()) {
if (hashMap.get(keyprint) != 0) {
System.out.println("RUn ID : " + keyprint + " DogID : "
+ hashMap.get(keyprint));
}
}
} //close of outer for loop
解决方案只是将打印for
循环移出外部for
循环。