浅谈list的remove方法

2023-11-15

List list=new ArrayList<>();
list.add(11);
list.add(12);
list.add(13);
list.add(14);
list.add(15);
list.add(16);

    /*for (Integer i=0; i<list.size(); i++) {
        if (list.get(i) % 2 == 0) {        
            list.remove(i);   //执行删除指定位置的元素的功能     执行结果 [11,12,13,14,15,16]
        }
    }*/
    for (int i=0; i<list.size(); i++) {
        if (list.get(i) % 2 == 0) {
            list.remove(i);   //执行删除指定元素的功能          执行结果 [11,13,15]
        }
    }
    for(Integer i : list){
        System.out.println(i);
    }
}

上述执行的代码中remove调用的不是同一个方法分别是list重写的两个remove方法,分别为
public E remove(int index); //执行删除指定位置的元素的功能
public boolean remove(Object o) //执行删除指定元素的功能

// 删除ArrayList指定位置的元素
public E remove(int index) {
RangeCheck(index);//检查index是否超出list大小范围,否则抛出异常
modCount++;
E oldValue = (E) elementData[index];//elementData是实现list的数组
int numMoved = size - index - 1;//当执行删除操作是后面的元素全部向前面移动一位
if (numMoved > 0)
System.arraycopy(elementData, index+1, elementData, index,
numMoved);
elementData[–size] = null;
return oldValue;
}
// 删除ArrayList的指定元素
public boolean remove(Object o) {
if (o == null) {
  for (int index = 0; index < size; index++)
  if (elementData[index] == null) {
  fastRemove(index);
    return true;
}
} else {
for (int index = 0; index < size; index++)
   if (o.equals(elementData[index])) {
   fastRemove(index);
   return true;
   }
}
return false;
}

//快速删除第index个元素
  private void fastRemove(int index) {
modCount++;
int numMoved = size - index - 1;
if (numMoved > 0)
System.arraycopy(elementData, index+1, elementData, index,
numMoved);
elementData[–size] = null;
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

浅谈list的remove方法 的相关文章

  • 任务“:app:dexDebug”执行失败

    我目前正在处理我的项目 我决定将我的 Android Studio 更新到新版本 但在我导入项目后 它显示如下错误 Information Gradle tasks app assembleDebug app preBuild UP TO
  • Google 地图查询返回的 JSON 包含像 \x26 这样的编码字符(如何解码?)

    在 Java 应用程序中 我获取 JSON 来自 Google 地图 其中包含以下字符 x26我想将其转换为其原始字符 据我所知 这是一个 UTF 8 表示法 但我不完全确定 在源 JSON 中 可能会出现各种编码字符 例如 x3c div
  • 检查双精度值的等于和不等于条件

    我在比较两者时遇到困难double values using and 我创建了 6 个双变量并尝试进行比较If健康 状况 double a b c d e f if a b c d e f My code here in case of t
  • 如何打印整个字符串池?

    我想打印包含文字的整个字符串池String使用添加的对象intern 就在垃圾收集之前 JDK有没有隐式的方法来进行这样的操作 我们如何检查字符串池 EDIT The comment suggests that there may be a
  • java.lang.Class: 在 java 程序中初始化 log4j 属性文件时出错

    我正在尝试使用 log4j 运行独立的 java 程序 但在调试时收到以下消息 控制台上没有 log4j 相关日志 log Logger 1343 java lang Class ERROR in 18b4aac2 有人可以建议这里出了什么
  • 如何对 IntStream 进行逆序排序

    我正在使用 txt 文件读取数字BufferedReader 我想颠倒该流中元素的顺序 以便在收集它们时 它们将从最高到最低排列 我不想在构建数组后进行排序 因为我不知道其中可能有多少元素 我只需要最高的 N 个元素 in new Buff
  • MI设备中即使应用程序被杀死,如何运行后台服务

    您好 我正在使用 alaram 管理器运行后台服务 它工作正常 但对于某些 mi 设备 后台服务无法工作 我使用了服务 但它无法工作 如何在 mi 中运行我的后台服务 MI UI有自己的安全选项 所以你需要的不仅仅是上面提到的粘性服务 你需
  • 方法断点可能会大大减慢调试速度

    每当向方法声明行添加断点 在 Intellij IDEA 或 Android Studio 中 时 都会出现一个弹出窗口 方法断点可能会大大减慢调试速度 为什么会这样戏剧性地减慢调试速度 是我的问题吗 将断点放在函数的第一行有什么不同 Th
  • 想要开发像 Facebook 这样的网站 - 处理数百万个请求 - 高性能 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我想用 Java 开发一个像 Fac
  • 参数动态时如何构建 JPQL 查询?

    我想知道是否有一个好的解决方案来构建基于过滤器的 JPQL 查询 我的查询太 富有表现力 我无法使用 Criteria 就像是 query Select from Ent if parameter null query WHERE fiel
  • 打印包含 JBIG2 图像的 PDF

    请推荐一些库 帮助我打印包含 JBIG2 编码图像的 PDF 文件 PDFRenderer PDFBox别帮我 这些库可以打印简单的 PDF 但不能打印包含 JBIG2 图像的 PDF PDFRenderer尝试修复它 根据 PDFRedn
  • tomcat 过滤所有 web 应用程序

    问题 我想对所有网络应用程序进行过滤 我创建了一个过滤器来监视对 apache tomcat 服务器的请求 举例来说 它称为 MyFilter 我在 netbeans 中创建了它 它创建了 2 个独立的目录 webpages contain
  • 从 Java 日历迁移到 Joda 日期时间

    以前 当我第一次设计股票应用相关软件时 我决定使用java util Date表示股票的日期 时间信息 后来我体会到了大部分方法java util Date已弃用 因此 很快 我重构了所有代码以利用java util Calendar 然而
  • 让JScrollPane控制多个组件

    对于我的应用程序 我正在设计一个脚本编辑器 目前我有一个JPanel其中包含另一个JPanel保存行号 位于左侧 以及JTextArea用于允许用户输入代码 位于右侧 目前 我已经实施了JScrollPane on the JTextAre
  • OpenJDK 版本控制

    上下文 我想确保我们系统上安装的 Java 不受 CVE 2022 21449 的影响 java version 给出 openjdk version 11 0 7 2020 04 14 LTS OpenJDK Runtime Enviro
  • 从 Stax XMLStreamReader 读取以解组部分

    我正在使用 Stax 游标 API 从大型 xml 文件中提取数据 当前 我转到特殊标签的开头并使用 JAXB 解组该标签 这对于格式良好的 xml 文件效果很好 但不久前我有一个文档 其中数十万个标签中有一个未关闭 JAXB 使用 XML
  • 来自客户端的超时 Web 服务调用

    我正在使用 RestEasy 客户端调用网络服务 一项要求是 如果调用运行时间超过 5 秒 则中止 超时调用 我如何使用 RestEasy 客户端实现这一目标 我只看到服务器端超时 即如果在一定时间内未完成请求 Rest Easy 网络服务
  • struts 教程或示例

    我正在尝试在 Struts 中制作一个登录页面 这个想法是验证用户是否存在等 然后如果有错误 则返回到登录页面 错误显示为红色 典型的登录或任何表单页面验证 我想知道是否有人知道 Struts 中的错误管理教程 我正在专门寻找有关的教程 或
  • Java中获取集合的幂集

    的幂集为 1 2 3 is 2 3 2 3 1 2 1 3 1 2 3 1 假设我有一个Set在爪哇中 Set
  • 尝试使用带有有效购买令牌的 Java Google Play Developer API v3 检索应用内购买信息时出现错误请求(无效值)

    当使用 Java Google Play Developer API 版本 3 并请求有效购买令牌的购买信息时 我收到以下异常 API 调用返回 400 Bad Request 响应以及以下消息 code 400 errors domain

随机推荐

  • 如何开发一个App(Android)

    前言 本篇博客从开发的角度来介绍如何开发一个Android App 需要说明一点是 这里只是提供一个如何开发一个app的思路 并不会介绍很多技术上的细节 从整个大局去把握如何去构思一个app的开发 让你对独立开发一款app的时候有个理解 如
  • tia v15 添加项目_西门子S7-1500plc与S7-300plcPN/IO设备通信-创建项目

    西门子S7 1500plc与S7 300plcPN IO设备通信 PROFINET的CPU支持I device功能 即智能IO设备功能 也就是该PN设备可以同时作为IO控制器和IO设备 一个PN智能设备功能不但可以作为一个智能处理单元处理生
  • SpringSecurity连接数据库的使用

    一 简介 Spring 是非常流行和成功的 Java 应用开发框架 Spring Security 正是 Spring 家族中的成员 Spring Security 基于 Spring 框架 提供了一套 Web 应用安全性的完整解决方案 正
  • 【ASP.NET MVC系列】浅谈ASP.NET 页面之间传值的几种方式

    ASP NET MVC系列文章 01 浅谈Google Chrome浏览器 理论篇 02 浅谈Google Chrome浏览器 操作篇 上 03 浅谈Google Chrome浏览器 操作篇 下 04 浅谈ASP NET框架 05 浅谈AS
  • webpack-插件

    插件 Plugins 插件是 wepback 的支柱功能 webpack 自身也是构建于 你在 webpack 配置中用到的相同的插件系统之上 插件目的在于解决 loader 无法实现的其他事 剖析 webpack 插件是一个具有 appl
  • 操作系统实验:FCFS调度和SPF调度算法(C语言)

    实验内容 已知一组进程P1 P2 P3 及其到达时间和服务时间 参考下图 分别采用FCFS调度算法和SPF调度算法 求各个进程的完成时间 周转时间 带权周转时间 平均周转时间和平均带权周转时间 实验目的 熟悉FCFS调度算法的实现过程 熟练
  • CSS 图片偏移技术以及坐标问题

    CSS中通过图片偏移技术可以实现将众多小图标放入一个图片中 网页加载时只需要加载一个图片即可实现得到众多小图标的功能 这是前端设计时候对图片的一种优化方式 图片偏移技术只是一个属性而已 即 background position 100px
  • anaconda已经有sklearn,但是pycharm不能导入的解决方法

    问题 D software Anaconda3 Lib site packages文件夹里已经有sklearn这个文件夹 但是pycharm里import时无法识别到 原因 在pycharm里点击文件 gt 设置 gt 项目 gt Pyth
  • 仿微信底部菜单栏(ViewPager+ImagerView+TextView)

    前言 在市面上 大多数的APP都需要通过底部菜单栏来将程序的功能进行分类整理 通常都是分为3 5个大模块 从而正确有效地引导用户去使用我们的APP 实现底部菜单栏的方法也有很多种 1 仿微信底部菜单栏 ViewPager ImagerVie
  • CSS之继承

    1 什么是css继承 继承是css中非常重要的一个概念 当你为HTML中的某个元素赋予CSS样式时 这些样式不仅仅会影响当前元素 有的样式还会影响该元素的子元素 这些下层子元素继承上层祖先元素样式属性的特点 就称为css继承 2 css继承
  • 职业规划——我是如何在第一份工作中就能做到部门副经理的?

    这个标题一出来 想必应该就有相当一部分人在无限嘴嗨 what 这人装啥B 吹B也不带打草稿的 还以为是哪个大厂出来的 就一无名小公司 坐上去不停容易的嘛 还发出来博人眼球干啥 是的 您没看错 就是一名非计算机专业毕业的98年大专生 在一家有
  • PHP集成环境vscode配置debug

    PHP集成环境vscode配置debug 1 首先phpstudy配置下图 打开XDebug 监听端口9005 2 php ini配置 当前环境对应版本的php ini文件 用记事本打开 确认最后的XDebug如下 Xdebug zend
  • 增加数据盘 小于2T XFS文件系统

    parted dev sdb mklabel msdos mkpart p xfs 0 100 mkfs xfs dev sdb1 blkid Edit etc fstab and add UUID
  • 【C语言】快速排序函数qsort()

    快速排序函数 函数原型 各种数据类型的升序排序函数 1 整型 2 double型 3 字符排序 4 字符串排序 1 根据字符串首字母排序 2 根据字符串长度排序 3 按字典排序字符串 5 结构体 1 一级排序 2 二级排序 具体样例 1 整
  • rust开发工具

    文章目录 介绍 安装Rust 检测 安装vscode 安装Visual C 远程开发 在WSL上远程开发 SSL 远程开发 插件 技巧 idea或clion rust插件 介绍 支持Rust开发最好的开发工具有VS CODE SUBLIME
  • 用matlab画散点图,并指定点与点之间的连线

    用matlab画散点图不难 用scatter函数就行了 主要难在要指定点与点之间连线 关键在于使用gplot函数 语法 gplot A Coordinates gplot A Coordinates LineSpec X Y gplot A
  • GTK3.20安装win10主题和图标

    书接上回win10专业版vs2017编译最新版GTK的两种方法 编译完成后 生成的文件位于C gtk build gtk x64 release 把C gtk build gtk x64 release bin放到环境变量 在vs工程里引用
  • 软件定义网络 (SDN)技术原理详解

    一 SDN相关概念 1 大二层网络 互联网时代 用户的访问称之为南北向流量 而数据中心之间的数据传递成为东西向流量 很多情况下 需要不同的数据中心之间进行数据访问 数据同步 而去同步这些流量要求对这个安全性 以及稳定性有一定的挑战 而让这些
  • vue 纯前端导出 excel

    1 安装2个依赖 npm install file saver xlsx S 加载script 需要 npm install script loader D 2 在 src 目录下新建 vendor文件夹 用于存放 Blob js 和 Ex
  • 浅谈list的remove方法

    List list new ArrayList lt gt list add 11 list add 12 list add 13 list add 14 list add 15 list add 16 for Integer i 0 i