当前位置: 首页 > news >正文

Java中清空集合列表元素有哪些方式

在 Java 里,存在多种清空列表的方式,下面为你汇总并附上对应的示例代码:

import java.util.ArrayList;
import java.util.List;

public class ListClearDemo {
    public static void main(String[] args) {
        // 初始化一个列表
        List<String> summaryTypes = new ArrayList<>();
        summaryTypes.add("Type1");
        summaryTypes.add("Type2");
        summaryTypes.add("Type3");

        System.out.println("原始列表: " + summaryTypes);

        // 方法 1: 使用 clear() 方法
        List<String> method1List = new ArrayList<>(summaryTypes);
        method1List.clear();
        System.out.println("使用 clear() 方法清空后的列表: " + method1List);

        // 方法 2: 创建新列表并赋值
        List<String> method2List = new ArrayList<>(summaryTypes);
        method2List = new ArrayList<>();
        System.out.println("创建新列表并赋值后原引用指向的列表: " + method2List);

        // 方法 3: 使用 removeAll 方法
        List<String> method3List = new ArrayList<>(summaryTypes);
        method3List.removeAll(new ArrayList<>(method3List));
        System.out.println("使用 removeAll 方法清空后的列表: " + method3List);

        // 方法 4: 循环移除元素
        List<String> method4List = new ArrayList<>(summaryTypes);
        while (!method4List.isEmpty()) {
            method4List.remove(0);
        }
        System.out.println("循环移除元素后清空的列表: " + method4List);
    }
}    

代码解释

  1. clear() 方法:调用列表的 clear() 方法可直接移除列表里的全部元素,这是最常用且高效的方式。
  2. 创建新列表并赋值:创建一个全新的列表对象,再把它赋值给原引用,旧列表对象会被垃圾回收。不过要注意,若原列表在其他地方还有引用,这些引用不会受到影响。
  3. removeAll 方法:借助 removeAll 方法移除列表中包含在指定集合里的所有元素。这里传入一个包含原列表所有元素的集合,以此实现清空列表的效果。
  4. 循环移除元素:通过 while 循环不断调用 remove(0) 方法移除列表的第一个元素,直至列表为空。但此方法的时间复杂度较高,对于 ArrayList 而言,时间复杂度为 O(n2)。

在实际应用中,建议优先使用 clear() 方法,因为它简洁且高效。

相关文章:

  • 【Elasticsearch基础】基本核心概念介绍
  • [python]基于yolov8实现热力图可视化支持图像视频和摄像头检测
  • kubernet在prometheus+alertmanager+grafana框架下新增部署loki模块
  • 【进阶】vscode 中使用 cmake 编译调试 C++ 工程
  • uni-app页面怎么设计更美观
  • 快速入手-基于Django-rest-framework的ModelSerializer模型序列化器(三)
  • 基于模糊PID算法的智能洗衣机控制器设计,实现洗衣过程智能化,能够监测衣物重量和污泥,实现洗涤时间、洗衣液投放的智能控制
  • 解析 ID 数组传参的解决方案:基于 Axios 的实现
  • leetcode40-组合总和II
  • Linux下的socket演示程序3(udp)
  • C++调用Openssl 报OPENSSL_Uplink(503EE220,08): no OPENSSL_Applink
  • CentOS 8 Stream 配置在线yum源参考 —— 筑梦之路
  • 力扣DAY30 | 热100 | 两两交换链表中的节点
  • LeetCode hot 100 每日一题(17)——160.相交链表
  • 算法--动态规划
  • 给聊天机器人装“短期记忆“:Flask版实现指南
  • Dubbo(18)Dubbo的SPI机制是什么?
  • Rocky linux部署DNS服务
  • GPU服务器集群网络规划方案
  • 阿里云数据学习20250327
  • 做网站资质荣誉用的图片/营销目标分为三个方面
  • 专业的广州商城网站建设/iis搭建网站
  • 网站怎么做能让人搜到/文章推广平台
  • 自媒体网站程序/整合营销传播
  • 河北 政府网站建设管理/给公司做网站要多少钱
  • 网站建设实习小结/手机端搜索引擎排名