如何判断list、map集合是否为空[通俗易懂]

如何判断list、map集合是否为空[通俗易懂]前言最近在面试的时候,经常会遇到一个问题:请问如何判断一个list/map集合为空?这个问题我们可以反向思考,一个集合不为空,假设有一个对象map,要满足map!=null&&!map.isEmpty()在这里会出现一个误区,需要特别注意:a.List<T>list=newArrayList<>();if(!list.isE…

大家好,又见面了,我是你们的朋友全栈君。

前言

最近在面试的时候,经常会遇到一个问题:请问如何判断一个list/map集合为空?
这个问题我们可以反向思考,一个集合不为空,假设有一个对象 map,要满足
map != null && !map.isEmpty()
在这里会出现一个误区,需要特别注意:
a.

List<T> list=new ArrayList<>();
if ( !list.isEmpty() && list! = null)
{ 
   
 System.out.println("list不为空");
} else { 
   
System.out.println("list为空");
}

上面一段代码是错误
这就相当与,你要要到商店买商品。
list!=null 首先判断是否有商店,
而!list.isEmpty()则没有先判断商店是否存在,而是直接判断商店是否有商品。
总结用法:如果连商店都没有,何来的的商品可买,上面代码会出现空指针问题
所以一般正确的判断是:

if(list != null && !list.isEmpty()){ 
   
   System.out.println("list不为空");
}else{ 
   
   System.out.println("list为空");
}

b.

if(null == list && list.isEmpty()){ 
   
 System.out.println("list为空");
} else { 
   
 System.out.println("list不为空");
}

这种情况不管怎么都不会判断出为空,因为lsit == null不为空,如果把list置为空,会出现空指针错误.
正确情况:

if(null == list || list.isEmpty()){ 
   
 System.out.println("list为空");
} else { 
   
 System.out.println("list不为空");
}

list.size()和 list.isEmpty()在数据量小的时候没有什么区别,但是在数据量多的时候,isEmpty()的效率高
map同理可以用上述正确方式来判断集合为空的情况.

这里 java面试基础题 有java基础面试题,大家可以下载做做,希望大家可以找到一个好的工作!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/149126.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • React教程(详细版)

    React教程(详细版)一、简介(背景)1.1、概念它是一个将数据渲染为HTML视图的js库1.2、原生js痛点用dom的API去操作dom,繁琐且效率低用js直接操作dom,浏览器会进行大量的回流和重绘原生jjs没有组件化的编程方案,代码复用性低,哪怕有模块话的概念,但模块化也只能拆解一个个js,对样式和结构也没办法拆解,组件化就相当于3剑客整体拆解,成为一个个的小功能1.3、React特点采用组件化模式,声明式编码,提高开发效率和组件复用性在ReactNative中可以用react预发进行安卓、io

  • AspNetPager组件

    AspNetPager组件UrlPaging=”false”NumericButtonTextFormatString=”[{0}]”CustomInfoHTML=”第%CurrentPageIndex%页共%PageCount%页显示%StartRecordIndex%-%EndRecordIndex%条”                                   ShowCusto

    2022年10月25日
  • idea配置svn仓库

    idea配置svn仓库IntelliJIDEA使用教程(总目录篇)首先,使用的时候,自己得先在电脑上安装个小乌龟。也就是svn啦。第一步安装小乌龟。如下:具体安装好像没什么具体要求,一路next,就好。如上图箭头所示,在安装TortoiseSVN的时候,默认commandlineclienttools,是不安装的,这里建议勾选上。这个我不确定我当时选没选,不过呢,你给安装上,也是没问题的。把上面的勾选取…

  • 16 岁高中生成功将 Linux 移植到 iPhone,并贴出详细指南[通俗易懂]

    16 岁高中生成功将 Linux 移植到 iPhone,并贴出详细指南[通俗易懂]本文转载自InfoQ,作者李俊辰如果你的旧iPhone已经无法支持你日常使用了,你会怎么处理这部iPhone呢?卖掉还是留起来收藏呢?近日,国外一名16岁的小开发者在YouTube上发布了一则视频,展示了自己是如何将Linux移植到一部无法使用的iPhone7。2020年3月,Corellium提出了ProjectSandcastle,通过使用checkra1n越狱程序在iPhone上成功运行Android,激发了开发者对那些旧型号的iPhone.

  • ubuntu安装wget命令_macbook无法安装app

    ubuntu安装wget命令_macbook无法安装app有些时候,我们希望直接通过wget来下载文件。MacOS可以通过以下几种方式安装Wget:1、使用port命令sudoportinstallwget2、使用brew命令sudobrewinstallwget3、使用浏览器下载一个Wget的源码包,http://www.gnu.org/software/wget/打开终端解压,1)输入:tarzxvfwget-1.

    2022年10月16日
  • 用python写一个简单的表白代码

    用python写一个简单的表白代码fromturtleimport*color(‘black’,’red’)begin_fill()penup()goto(50,50)pendown()right(45)goto(100,0)left(90)fd(120)circle(50,225)penup()goto(0,0)pendown()left(135)fd(120)circle(50,225…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号