java中各种数据类型和集合的判空(代码演示+工具类)

目录

基本数据类型

对象类型

集合类型

综合示例

总结

工具类 hutool


基本数据类型

基本数据类型在Java中不能为null,它们有默认值。基本数据类型包括:

  • int
  • float
  • double
  • char
  • boolean
  • byte
  • short
  • long

因此,对基本数据类型不需要进行判空检查,只需要处理它们的默认值。

基本数据类型默认值:

  1. 整型(Integer Types)

    • byte:默认值为 0
    • short:默认值为 0
    • int:默认值为 0
    • long:默认值为 0L
  2. 浮点型(Floating-Point Types)

    • float:默认值为 0.0f
    • double:默认值为 0.0d
  3. 字符型(Character Type)

    • char:默认值为 '\u0000'(null字符)
  4. 布尔型(Boolean Type)

    • boolean:默认值为 false

对象类型

对于对象类型(如String),判空通常是检查它们是否为null

String str = null;
if (str == null) {System.out.println("String is null");
} else {System.out.println("String is not null");
}

集合类型

Java中的集合类型包括ListSetMap等。通常需要检查集合对象是否为null,然后再检查集合是否为空(即没有元素)。

List

List<String> list = null;// 判空检查
if (list == null) {System.out.println("List is null");
} else if (list.isEmpty()) {System.out.println("List is empty");
} else {System.out.println("List is not empty");
}

Set 

Set<String> set = null;// 判空检查
if (set == null) {System.out.println("Set is null");
} else if (set.isEmpty()) {System.out.println("Set is empty");
} else {System.out.println("Set is not empty");
}

map

Map<String, String> map = null;// 判空检查
if (map == null) {System.out.println("Map is null");
} else if (map.isEmpty()) {System.out.println("Map is empty");
} else {System.out.println("Map is not empty");
}

综合示例

import java.util.*;public class NullCheckExample {public static void main(String[] args) {String str = null;List<String> list = new ArrayList<>();Set<String> set = null;Map<String, String> map = new HashMap<>();checkNull(str);checkNull(list);checkNull(set);checkNull(map);}public static void checkNull(String str) {if (str == null) {System.out.println("String is null");} else {System.out.println("String is not null");}}public static void checkNull(List<?> list) {if (list == null) {System.out.println("List is null");} else if (list.isEmpty()) {System.out.println("List is empty");} else {System.out.println("List is not empty");}}public static void checkNull(Set<?> set) {if (set == null) {System.out.println("Set is null");} else if (set.isEmpty()) {System.out.println("Set is empty");} else {System.out.println("Set is not empty");}}public static void checkNull(Map<?, ?> map) {if (map == null) {System.out.println("Map is null");} else if (map.isEmpty()) {System.out.println("Map is empty");} else {System.out.println("Map is not empty");}}
}

总结

  • 基本数据类型:不需要判空,只需处理默认值。
  • 对象类型:检查是否为null
  • 集合类型:先检查是否为null,再检查是否为空(isEmpty())。

工具类 hutool

String

String str = " ";
boolean empty = StrUtil.isEmpty(str);
boolean blank = StrUtil.isBlank(str);
//false
System.out.println(empty);
//true
System.out.println(blank);

集合

//判断列表是否为空 list!=null && list.size()!=0
ArrayList<Object> newList = CollUtil.newArrayList();
System.out.println(CollUtil.isEmpty(newList));

 map

//将多个键值对加入到Map中Map<Object, Object> map = MapUtil.of(new String[][]{{"key1", "value1"},{"key2", "value2"},{"key3", "value3"}});
//判断Map是否为空
System.out.println(MapUtil.isEmpty(map));

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/39426.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实验九 存储过程和触发器

题目 创建并执行一个无参数的存储过程proc_product1&#xff0c;通过该存储过程可以查询商品类别名称为“笔记本电脑”的商品的详细信息&#xff1a;包括商品编号、商品名称、品牌、库存量、单价和上架时间信息 2、创建并执行一个带输入参数的存储过程proc_product2&#xff…

【软件测试】Postman接口测试基本操作

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 点击文末小卡片 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;薪资嘎嘎涨 Postman-获取验证码 需求&#xff1a;使用Postman访问验证码接口&#xff0c;并查看响应结果…

图书管理系统(持久化存储数据以及增添新功能)

目录 一、数据库表设计 二、引入MyBatis 和MySQL 驱动依赖 三、配置数据库 & 日志 四、Model创建 五、枚举类 常量类用户登录 六、用户登录 七、添加图书 八、图书列表 九、修改图书 十、删除图书 十一、批量删除 十二、强制登录 十三、前端代码 &#xff0…

AI与测试相辅相成

AI助力软件测试 1.AI赋能软件测试 使用AI工具来帮助测试人员提高测试效率&#xff0c;提供缺陷分析和缺陷预测。 语法格式 设定角色 具体指示 上下文格式 例: 角色&#xff1a;你是一个测试人员 内容&#xff1a;请帮我生成登录案例的测试用例 ​ 1.只有输入正确账号和密码才…

生命在于学习——Python人工智能原理(3.2.1)

二、随机变量 2.1 随机变量及其分布 &#xff08;一&#xff09;基本概念 定义1 随机变量 随机变量表示随机试验各种结果的实值单值函数&#xff0c;即能用数学分析方法来研究随机现象&#xff0c;例如某一时间内公共汽车站等车的乘客人数、淘宝在一定时间内的交易次数等&am…

Shenandoah GC概述

文章目录 1_介绍2_原理1.0版本2.0版本3_ShenandoahGC的执行流程4_并发转移阶段 – 并发问题 1_介绍 Shenandoah 是由Red Hat开发的一款低延迟的垃圾收集器&#xff0c;Shenandoah 并发执行大部分 GC 工作&#xff0c;包括并发的整理&#xff0c;堆大小对STW的时间基本没有影响…

if __name__ == “__main__“

在Python中&#xff0c;if __name__ "__main__": 这行代码非常常见&#xff0c;它用于判断当前运行的脚本是否是主程序。这里的 __name__ 是一个特殊变量&#xff0c;当Python文件被直接运行时&#xff0c;__name__ 被自动设置为字符串 "__main__"。但是&…

【pearcmd】通过pearcmd.php 进行GetShell

https://cloud.tencent.com/developer/article/2204400 关于PHP 配置 register_argc_argv 小结 的一些研究文章。 应用例题 [NewStarCTF 2023 公开赛道]Include &#x1f350; <?phperror_reporting(0);if(isset($_GET[file])) {$file $_GET[file];if(preg_match(/flag|l…

如何理解synchronized锁升级

在Java中&#xff0c;synchronized 关键字是实现线程同步的一种方式&#xff0c;它涉及到锁的升级和释放的过程。理解synchronized 锁的升级可以分为三个阶段&#xff1a;无锁状态、偏向锁状态和轻量级锁状态。 无锁状态&#xff1a; 当对象被创建时&#xff0c;默认处于无锁状…

贪心 | Java | LeetCode 455, 376, 53 做题总结

贪心算法介绍 贪心算法&#xff1a;贪心的本质是选择每一阶段的局部最优&#xff0c;从而达到全局最优。 说实话贪心算法并没有固定的套路。 一般解题步骤 贪心算法一般分为如下四步&#xff1a; ① 将问题分解为若干个子问题 ② 找出适合的贪心策略 ③ 求解每一个子问题的…

SQL Server数据库的组成

《SQL Server 2022从入门到精通&#xff08;视频教学超值版&#xff09;》图书介绍-CSDN博客 对于数据库的概念&#xff0c;没有一个完全固定的定义&#xff0c;随着数据库历史的发展&#xff0c;定义的内容也有很大的差异&#xff0c;其中一种比较普遍的观点认为&#xff0c;…

Java中的并行计算与任务分发策略

Java中的并行计算与任务分发策略 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 并行计算的重要性与挑战 在当今软件开发领域&#xff0c;随着数据量和计算复…

c++获取路径中的文件名

C获取路径中的文件名有狠多方法&#xff0c;最常见的方法&#xff1a; 使用C标准库 首先&#xff0c;可以使用C标准库中的字符串处理函数来获取路径中的文件名。可以通过以下步骤实现&#xff1a; 使用字符串分割函数&#xff08;例如std::string::find_last_of、std::string…

Winform中使用HttpClient实现调用http的post接口并设置传参content-type为application/json示例

场景 Winform中怎样使用HttpClient调用http的get和post接口并将接口返回json数据解析为实体类&#xff1a; Winform中怎样使用HttpClient调用http的get和post接口并将接口返回json数据解析为实体类_winform解析json-CSDN博客 上面使用HttpClient调用post接口时使用的HttpCon…

21.《C语言》——【位操作符】

&#x1f33b;开场语 亲爱的读者&#xff0c;大家好&#xff01;我是一名正在学习编程的高校生。在这个博客里&#xff0c;我将和大家一起探讨编程技巧、分享实用工具&#xff0c;并交流学习心得。希望通过我的博客&#xff0c;你能学到有用的知识&#xff0c;提高自己的技能&a…

今天不看文章,明天变垃圾(明天收费)-----字节数据分析发展过程中所遭遇的挑战

字节数据分析发展过程中所遭遇的挑战 三个核心议题&#xff1a; 海量数据分析性能&#xff1a;会议指出Spark分析性能不足成为了一个显著问题&#xff0c;尤其是在需要毫秒级响应的业务场景中。实时导入与查询能力&#xff1a;目前Kylin只能以T1的形式提供分析服务&#xff0…

蓝牙资讯|苹果Apple Pencil新专利:用笔套扩展传感器 / 续航等模块化方案

根据美国商标和专利局最新公示的清单&#xff0c;苹果公司获得了一项 Apple Pencil 的专利&#xff0c;探索了模块化设计方案&#xff0c;用户未来可以根据自身需求或者使用场景&#xff0c;随心更换 Pencil 的模块&#xff0c;达到不同的效果。 苹果在专利中表示笔套内置传感器…

Docker实战教程(一)

文章目录 Docker实战教程一、Docker简介二、Docker安装过程1. Windows上安装Docker2. Linux上安装Docker三、Docker基本概念四、Docker常用命令五、Docker常见应用场景六、总结Docker实战教程 Docker是一种开源的容器化平台,能够自动化应用程序的部署、管理和隔离。它使得开发…

jQuery UI 简介

jQuery UI 简介 1. 引言 jQuery UI 是一个建立在 jQuery JavaScript 库之上的开源小部件和交互库,旨在创建高度交互的网页。它提供了一系列预先设计好的小部件,如拖放、排序、对话框、工具提示等,以及用于构建复杂用户界面的交互方法。jQuery UI 的设计目标是简化 HTML 文…

图书电商引入实在Agent:自动化运营提效80%,节省人天1000+

某知名教辅图书品牌深耕中小学教辅图书领域&#xff0c;是中国最具影响力的教育出版策划与发行集团之一&#xff0c;以丰富的图书品类&#xff0c;满足了小学、初中、高中各年龄段读者多元化的阅读需求。 2023年&#xff0c;该品牌在运营、客服等多部门超60个场景中部署实在Ag…