java日常-List、Map初始值

对于List、Set和Map的初始值,对于初学者来说容易混淆,所以在进行为空判断的时候会容易出错。为了能更好的使用集合,我总结一下:

一、List的初始值:

先初始化一个List,输出它的值:

List<Map<String,Object>> list = new ArrayList<>();
System.out.println(list);

输出结果是:[ ]

也就是说,初始化的List,输出结果并不是null或者“”,如果用list!=null进行判断的话,即使list里边没有值,但是也一定不是null,所以这种判断是不准确的。在java API文档中,List的判断应该是isEmpty()方法。isEmpty()的解释是:如果列表不包含元素,则返回 true。然而在List中,如果判断List里边是否有值,还有size()。size()的解释是:返回列表中的元素数。所以判断list中是否有元素的时候,用list.size()>0即可。

//判断为空
if(list.isEmpty()){}
//判断有无元素
if(list.size()>0){}
//判断不为空并且有元素,个人觉得这里只用list.size()>0就可以
if(!list.isEmpty()&&list.size()>0){}

二、Set的初始化

其实Set和List都是继承自Collection,所以Set和List是一样的,我就只贴出Set测试的代码及其输出值:

Set<String> set = new HashSet<>();
System.out.println("set=" + set);

// 判断为空
if (set.isEmpty()) {
    System.out.println(true);
}
// 判断有无元素
if (set.size() > 0) {
     System.out.println(true);
}
// 判断不为空并且有元素,个人觉得这里只用list.size()>0就可以
if (!set.isEmpty() && set.size() > 0) {
      System.out.println(true);
}

输出值为:

set=[]
true

三、Map初始值

        //初始化空的map
        Map<String,Object> map = new HashMap<>();
        System.out.println("map="+map);
     System.out.println(map.size());
        
        if(map.isEmpty()){
            System.out.println(true);
        }
        if(map.size()>0){
            System.out.println(true);
        }

输出为:

map={}
0
true

这是一个空的Map,它的初始化值是:{},它里边有0个键值对;所以如果判断Map的值是否有无键值对的时候应该用isEmpty()或者是size();

再看一个map里边有键值对的例子,验证下操作:

        //初始化map,并put上值
        Map<String,Object> map1 = new HashMap<>();
        map1.put("name", "zhangsan");
        map1.put("age", "27");
        
        if(!map1.isEmpty()){
            System.out.println("map1="+map1);
        }
        
        if(map1.size()>0){
            System.out.println("map1.size()="+map1.size());
        }

输出结果为:

map1={name=zhangsan, age=27}
map1.size()=2

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值