【集合】JAVA中的集合以及判空操作大全

发布时间:2024年01月24日

一、JAVA中的集合类型

Java中有几种主要的集合框架,包括ListSetMap等,每种都有不同的特点和适用场景。

  1. List:

    • 特点:有序、可重复。可以通过索引访问元素,元素可以重复。
    • 实现类:ArrayListLinkedListVector等。
    • 使用场景:当需要按照插入顺序有序存储数据,且可能包含重复元素时,选择List
  2. Set:

    • 特点:无序、不可重复。不能通过索引访问元素,元素不能重复。
    • 实现类:HashSetLinkedHashSetTreeSet等。
    • 使用场景:当需要存储独一无二的元素,并且不关心元素的顺序时,选择Set
  3. Map:

    • 特点:键值对形式存储,每个键对应一个值。键不可重复,值可重复。
    • 实现类:HashMapLinkedHashMapTreeMap等。
    • 使用场景:适用于需要通过键快速查找值的场景,常用于缓存、数据索引等。
  4. Queue:

    • 特点:按照一定规则添加元素,按照另一种规则取出元素,通常按照先进先出(FIFO)的原则。
    • 实现类:LinkedList(可以模拟队列)、PriorityQueue等。
    • 使用场景:适用于需要按照一定顺序处理元素的场景,如任务调度等。
  5. Stack:

    • 特点:后进先出(LIFO)的原则,即最后压入的元素最先弹出。
    • 实现类:Stack类。
    • 使用场景:适用于需要后进先出顺序的场景,如表达式求值、浏览器的前进后退等。

这些集合类各有优劣,选择合适的集合类取决于具体的业务需求。在实际开发中,常常需要根据不同的场景灵活使用这些集合类。

二、集合判空操作

在Java中,集合的判空操作通常有以下几种方式:

  1. 直接检查是否为null:

    List<String> list = /* 初始化集合 */; 
    if (list == null) { 
        // 集合为空 
    }

    特点: 直观简单,适用于检查引用是否指向集合对象的情况。

    使用场景: 当明确知道引用指向的对象是集合对象或为null时使用。

  2. 使用isEmpty方法:

    List<String> list = /* 初始化集合 */; 
    if (list.isEmpty()) { 
        // 集合为空 
    }

    特点: 适用于 Collection?接口的实现类,如?ListSet?等。

    使用场景: 当不确定引用指向的集合实现类时,而又需要判空时使用。

  3. 使用Guava工具类:

    List<String> list = /* 初始化集合 */; 
    if (Objects.isNull(list) || list.isEmpty()) { 
    // 集合为空 
    }

    特点: 组合了?Objects.isNull??isEmpty?,适用于Java 7及以上版本。

    使用场景: 当需要一种通用的、不依赖具体集合实现类的判空方式时使用。

  4. 使用Apache Commons Collections库:

    List<String> list = /* 初始化集合 */; 
    if (CollectionUtils.isEmpty(list)) { 
    // 集合为空 
    }

    特点: 需要导入Apache Commons Collections库,适用于Java项目。

    使用场景: 当希望使用第三方库提供的工具方法时使用。

总体而言,直接检查是否为null是最简单的方式,但在涉及多种集合实现类的场景下,使用isEmpty方法或第三方工具库提供的方法更具通用性。选择哪种方式主要取决于项目的具体需求和约束。

文章来源:https://blog.csdn.net/weixin_45188218/article/details/135824472
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。