加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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循环.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读