java – HashMap不必要地放置重复值
发布时间:2020-12-15 04:28:57 所属栏目:Java 来源:网络整理
导读:我有以下代码,我想将结果插入数据库但是现在我只想打印出带有值的键. 在此代码之前使用键设置HashMap,它可以正常工作. 下面的代码循环遍历tableView,从列中获取项,如果项等于哈希映射中的键,则它将dogsID作为值放入hashmap中. // loop through tableView ite
我有以下代码,我想将结果插入数据库但是现在我只想打印出带有值的键.
在此代码之前使用键设置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)); } } } 但是,这会使用重复键打印到屏幕. 有没有办法从地图中删除重复的键值或更改当前代码以避免重复的键值对 解决方法
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循环. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |