如何判断List 集合和Map 集合是否为空

简介: 如何判断List 集合和Map 集合是否为空

1:废话少说,直接上代码

        //使用CollectionUtils Spring 包下的工具类
    List<Object> list = new ArrayList<>();
    if (list.isEmpty()) {
      log.info("当前的CollectionUtils-->{}",list.isEmpty());
    }
    if (CollectionUtils.isEmpty(list)){
      log.info("当前的CollectionUtils-->{}",CollectionUtils.isEmpty(list));
    }
    //ObjectUtils  Spring 包下的工具类
    if (ObjectUtils.isEmpty(list)) {
      log.info("当前的ObjectUtils-->:{}",ObjectUtils.isEmpty(list));
    }

执行结果如下:

6a092b68885241288fc3453418f7f1c5.png

1.1:特殊情况

ArrayList<Object> list1 = new ArrayList<>();
  list1 = null;
  try{
    //如果将list1 置为 null  进行判断非空的情况下 可以使用Objects.isNull()  方法
    if (Objects.isNull(list1)){
    log.info("Objects.isNull-->{}",Objects.isNull(list1));
    }
    //如果调用  isEmpty() 方法进行判断非空的情况下 就会报空指针异常, 报错异常原因如下
    if (list1.isEmpty()) {
    log.info("list1.isEmpty()-->,{}",list1.isEmpty());
    }
  }catch (Exception e) {
    log.info("Exception-->",e);
  }

打印结果如下:

434a9293f0eb42cc9579b8bbeee1163e.png

调用isEmpty 方法报错原因如下:

此时使用isEmpty()是出现了空指针异常NullpointException;原来isEmpty()用来判断一个变量是否已经初始化了,因为 “” 和new 的时候系统都会为其分配内存, 不管是否有值,当为null的时候,系统的不会为其分配内存,这是它是不存在的,如果调用isEmpty()方法时JDK根本不知道这是什么所以会报空指针异常;所以使用该方法判断之前应先判断是否为null

2:Map 集合

Map<String,String> map = new HashMap();
//  map.put("1","xia");
  if (map.isEmpty()){
    log.info("map.isEmpty-->{}", map.isEmpty());   //为真打印True
  }else {
    log.info("map.isEmpty-->{}", map.isEmpty());   //为假打印FALSE
  }
  //判断map 集合中是否 存在 键值为: 1  的数据
  if (map.containsKey("1")) {
    log.info("map.containsKey-->{}", map.get(1));
  }
  //  使用ObjectUtils 来判断map 集合是否为空
    if (ObjectUtils.isEmpty(map)) {
    log.info("当前的ObjectUtils集合为空:{}",map.isEmpty());
  }
  //判断map 集合中的value 值是否为空
  map.put("2","");
  if ("".equals(map.get("2"))) {
    log.info("当前的value值为:{}", map.get(2));
  }

打印结果如下:

67ef0198dbe7400faac6abf81de2bc6a.png

2.1:特殊情况

HashMap<Object, Object> map1 = new HashMap<>();
  map1 = null;
  try {
    if (Objects.isNull(map1)) {
    log.info("Objects.isNull-->{}",Objects.isNull(map1));
    }
    if (ObjectUtils.isEmpty(map1)) {
    log.info("ObjectUtils.isEmpty-->{}",ObjectUtils.isEmpty(map1));
    }
    if (map1.isEmpty()) {
    log.info("当前的map集合为空:{}",map1.isEmpty());
    }
  }catch (Exception e) {
    // 此时使用isEmpty()是出现了空指针异常NullpointException;
    // 原来isEmpty()用来判断一个变量是否已经初始化了,
               因为 “” 和new 的时候系统都会为其分配内存,
    // 不管是否有值,当为null的时候,系统的不会为其分配内存,这是它是不存在的,
    // 如果调用isEmpty()方法时JDK根本不知道这是什么所以会报空指针异常;
    // 所以使用该方法判断之前应先判断是否为null
      log.error("报错了,{}",e);
  }

打印结果如下:(当map = null  ,调用isEmpty 报错)

a6459cf109e74e63b40e1e19072be3aa.png



目录
相关文章
|
3月前
|
存储 安全 Java
【Java集合类面试二十五】、有哪些线程安全的List?
线程安全的List包括Vector、Collections.SynchronizedList和CopyOnWriteArrayList,其中CopyOnWriteArrayList通过复制底层数组实现写操作,提供了最优的线程安全性能。
|
3月前
|
安全
List集合特有功能
List集合特有功能
38 2
|
20天前
|
安全 Java 程序员
深入Java集合框架:解密List的Fail-Fast与Fail-Safe机制
本文介绍了 Java 中 List 的遍历和删除操作,重点讨论了快速失败(fail-fast)和安全失败(fail-safe)机制。通过普通 for 循环、迭代器和 foreach 循环的对比,详细解释了各种方法的优缺点及适用场景,特别是在多线程环境下的表现。最后推荐了适合高并发场景的 fail-safe 容器,如 CopyOnWriteArrayList 和 ConcurrentHashMap。
48 5
|
1月前
|
存储 分布式计算 NoSQL
大数据-40 Redis 类型集合 string list set sorted hash 指令列表 执行结果 附截图
大数据-40 Redis 类型集合 string list set sorted hash 指令列表 执行结果 附截图
25 3
|
2月前
|
算法
你对Collection中Set、List、Map理解?
你对Collection中Set、List、Map理解?
35 5
|
2月前
|
NoSQL Java Redis
List集合按照由小到大排序或者由大到小排序
List集合按照由小到大排序或者由大到小排序
21 3
|
2月前
|
Go 定位技术 索引
Go 语言Map(集合) | 19
Go 语言Map(集合) | 19
|
2月前
|
存储 前端开发 API
ES6的Set和Map你都知道吗?一文了解集合和字典在前端中的应用
该文章详细介绍了ES6中Set和Map数据结构的特性和使用方法,并探讨了它们在前端开发中的具体应用,包括如何利用这些数据结构来解决常见的编程问题。
ES6的Set和Map你都知道吗?一文了解集合和字典在前端中的应用
|
1月前
|
存储 分布式计算 Java
Stream很好,Map很酷,但答应我别用toMap():Java开发中的高效集合操作
在Java的世界里,Stream API和Map集合无疑是两大强大的工具,它们极大地简化了数据处理和集合操作的复杂度。然而,在享受这些便利的同时,我们也应当警惕一些潜在的陷阱,尤其是当Stream与Map结合使用时。本文将深入探讨Stream与Map的优雅用法,并特别指出在使用toMap()方法时需要注意的问题,旨在帮助大家在工作中更高效、更安全地使用这些技术。
38 0
|
3月前
|
Java
用JAVA架建List集合为树形结构的代码方法
这段代码定义了一个表示树形结构的 `Node` 类和一个用于构建树形结构的 `TreeController`。`Node` 类包含基本属性如 `id`、`pid`、`name` 和 `type`,以及子节点列表 `children`。`TreeController` 包含初始化节点列表并将其转换为树形结构的方法。通过过滤和分组操作实现树形结构的构建。详情可见:[代码示例链接1](http://www.zidongmutanji.com/zsjx/43551.html),[代码效果参考链接2](https://www.257342.com/sitemap/post.html)。
41 5