普通网友 2016-06-16 07:11 采纳率: 0%
浏览 2518
已采纳

跪求if里判断为空的写法

for (Policy policy:list) {
PolicyKey policyKey = policy.getPolicyKey();
System.out.println("policyMap"+policyMap);
System.out.println("policyKey"+policyKey);
if (policyMap.get(policyKey) == null) {
policyMap.put(policyKey, policy);
}

        代码上边所示:policyMap是if前 new的;
                                                    policyKey由(t,p,y)3个字段组成;
                                                    第一次循环if内判断为空,正常put值到map;
                                                    第二次循环policyKey中的p字段值变了,if判断竟然不是null;
        跪求大神教我 如何写if里判断为空的写法
  • 写回答

3条回答 默认 最新

  • little_how 2016-06-16 07:30
    关注

    按照你的逻辑看是没有问题的,那么问题就可能出现在一下几点
    1.policyMap中确实已经存在了值
    2.policyKey的hashCode和equals写的有问题,因为map是靠hashCode计算出hash值来确定位置,然后
    再根据equals来判断位置上是否有该值的。所以自定义的key一定要写好自己的hashCode和equals。

    如果有帮助,希望采纳
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
  • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序
  • ¥15 onvif+openssl,vs2022编译openssl64