在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/人工智能  Java  網(wǎng)絡(luò)安全/ java map使用迭代器遍歷時(shí)執(zhí)行刪除元素報(bào)空指針異常

java map使用迭代器遍歷時(shí)執(zhí)行刪除元素報(bào)空指針異常

我建立了兩個(gè)Map,其流程是遍歷兩個(gè)map,將map1中value值與map2中相同,但是K值不同的數(shù)據(jù)查找出來。然后把這條數(shù)據(jù)從Map2中刪除。我使用迭代器在執(zhí)行移除的時(shí)候是報(bào)空指針(java.lang.NullPointerException)的錯(cuò)。
請(qǐng)教一下代碼問題錯(cuò)誤在哪?
代碼如下:

            for (Map.Entry<String, DBdata> entry1 : map1.entrySet()) {
            //初始化數(shù)據(jù)
                            String code1 = entry1.getKey();
                            DBdata data1 = entry1.getValue();
                            Iterator<Map.Entry<String, DBdata>> iter = map2.entrySet().iterator();                               
                            while (iter.hasNext()) {
                                Map.Entry<String, DBdata> entry2 = iter.next();
                                String code2 = entry2.getKey();
                                DBdata data2 = entry2.getValue();
                                if (code1.equals(code2)) {
                                    continue;
                                 }
                                if (data1.get_URL() != null) {
                                     if (data1.get_URL().equals(data2.get_URL())) {
                                          if (data1.get_USER_CODE() != null) {          
                                                 if (data1.getBUSINESS_CODE().equals(data2.getBUSINESS_CODE())) {
                                                     if (data1.getSYSTEM_CODE().equals(data2.getSYSTEM_CODE())) {
                                                      LOG.info("移除該數(shù)據(jù) ");
                                                      iter.remove();
                                }
                            }


                        }
                        
                    }
                }
                
            }
        }
回答
編輯回答
扯機(jī)薄

debug一下就好了

2017年9月28日 22:28
編輯回答
兮顏

Map.Entry<String, DBdata> it = iter.next();
這一行放循環(huán)里面會(huì)不會(huì)好一點(diǎn)
為什么對(duì)iter做那么多next()操作,你確定不是操作了n/2條數(shù)據(jù)?

2017年1月20日 19:45
編輯回答
還吻

Well, this is my first visit to your blog! Your blog provided us valuable information .You have done a marvelous job

2017年9月28日 11:09
編輯回答
茍活

感覺報(bào)空指針異常的不是這段代碼

2017年6月23日 21:51
編輯回答
殘淚

謝邀,能確定是iter.remove();這行代碼拋出的異常么,個(gè)人感覺應(yīng)該不會(huì)是這一行,把異常堆棧信息貼出來吧,如果容器數(shù)據(jù)量不大,debug一下應(yīng)該就能查出來。

2017年2月7日 19:37
編輯回答
我不懂

麻煩貼一下具體的異常

2018年9月7日 14:39