List中remove()的用法

article/2025/9/24 19:42:37

List remove的三种正确方法

1、倒序循环,因为list删除只会导致当前元素之后的元素位置发生改变,所以采用倒序可以保证前面的元素没有变化;

for(int i=list.size()-1;i>=0;i--){ list.remove(i); 
}

2、顺序循环时,删除当前位置的值,下一个值就会补到当前位置,所以需要执行i–操作;

for (int i=0; i<list.size(); i++) {if (list.get(i) == 3) {list.remove(i);i--;}}    

3、注意必须用迭代器的remove()方法,不要用list的remove,不然会发生java.util.ConcurrentModificationException 异常;

if (null != list && list.size() > 0) {Iterator it = list.iterator();  while(it.hasNext()){Student stu = (Student)it.next(); if (stu.getStudentId() == studentId) {it.remove(); //移除该对象}}
}

代码

package List;import java.util.ArrayList;
import java.util.List;public class List3 {public static void main(String[] args) {List<Integer> list = new ArrayList<>();list.add(1);list.add(1);list.add(2);list.add(3);System.out.println("list = " + list);list.remove(1);System.out.println("list = " + list);list.remove(2);System.out.println("list = " + list);System.out.println();List<Integer> list2 = new ArrayList<>();list2.add(7);list2.add(8);list2.add(9);list2.add(10);list2.add(11);System.out.println("list2 = " + list2);for (int i = 0; i < list2.size(); i++) {System.out.println("list2.get(i) = " + list2.get(i));//7,9,11list2.remove(i);}System.out.println("list2 = " + list2);//8,10System.out.println();List<Integer> list3 = new ArrayList<>();list3.add(7);list3.add(8);list3.add(9);list3.add(10);list3.add(11);System.out.println("list3 = " + list3);for (int i = list3.size() - 1; i >= 0; i--) {System.out.println("list3.get(i) = " + list3.get(i));//11,10,9,8,7list3.remove(i);}System.out.println("list3 = " + list3);System.out.println();List<Integer> list4 = new ArrayList<>();list4.add(7);list4.add(8);list4.add(9);list4.add(10);list4.add(11);System.out.println("list4 = " + list4);for (int i = 0; i < list4.size(); i++) {System.out.println("list4.get(i) = " + list4.get(i));//7, 8, 9, 10, 11list4.remove(i);i--;}System.out.println("list4 = " + list4);System.out.println();}
}

在这里插入图片描述


http://chatgpt.dhexx.cn/article/gnbJ1LqI.shtml

相关文章

JSP内置对象Session——setAttribute/getAttibute/removeAttribute

本文章代码使用了request内置对象&#xff0c;可先查看之前的文章学习。 前言 一、Session使用环境 二、常用方法 三.使用示例 1. 设计某系统登陆模块&#xff0c;该模块需满足以下条件&#xff1a; 2.login.jsp登录页面 2.check.jsp校验页面 3. success.jsp成功登录页面…

Iterator remove()详解

转自&#xff1a;http://blog.51cto.com/tianxingzhe/1693218 一、Iterator的API 关于Iterator主要有三个方法&#xff1a;hasNext()、next()、remove() hasNext:没有指针下移操作&#xff0c;只是判断是否存在下一个元素 next&#xff1a;指针下移&#xff…

VLAN命令行配置

VLNA配置任务概览 各配置任务间的逻辑关系&#xff1a; VLAN配置任务概览&#xff1a; 配置任务描述划分VLAN创建并划分VLAN&#xff0c;将没有二层互通需求的用户进行隔离&#xff0c;可增强网络的安全性、减少广播流量&#xff0c;同时也减少了广播风暴的产生。配置通过VLA…

VLAN配置命令

VLAN作用 分割广播域 VLAN分类 静态VLAN 基于端口划分 动态VLAN 基于MAC地址划分 VLAN范围 0-4095 共4096个vlanID 0与4095系统保留 1-4094可用 VLAN配置命令 VLAN基础配置代码 添加vlan&#xff08;2-4094&#xff09; vlan 10 删除vlan undo vlan 10 批量增加 vlan batch …

华为 -VLAN配置

按照实验拓扑图接线。 配置PC1&#xff1a;IP&#xff08;192.168.1.1/24&#xff09;,PC2:IP(192.168.2.1/24)。测试PC1和PC2的连通性&#xff1a;用PC1去PingPC2&#xff0c;查看Ping的结果&#xff0c;并解释原因。 PC1和PC2在不同的网段&#xff0c;不能ping通 配置PC1&…

华为交换机vlan配置

拓扑图&#xff1a; 配置命令&#xff1a; sw1: sys sys sw1 vlan 10 vlan 20 int e0/0/1 port link-type access port default vlan 10 int e0/0/2 port link-type access port default vlan 20 int e0/0/3 port link-type trunk port trunk allow vlan 10 20sw2: sys sy…

ensp交换机vlan配置

交换机 一、VLAN1、VLAN的概念2、优势3、VLAN的种类4、VLAN的范围5、VLAN标识6、IEEE802.1q工作原理帧格式 二、交换机命令配置1、华为交换机链路类型2、添加VLAN 一、VLAN 1、VLAN的概念 VLAN&#xff08;Virtual Local Area Network&#xff09;即虚拟局域网&#xff0c;是…

eNSP VLAN配置

按如上拓扑图进行配置&#xff1a; 1、按拓扑图标记&#xff0c;划分VLAN&#xff0c;分配固定IP 2、开启两个路由器的DHCP服务&#xff0c;分配所有客户机IP地址 3、实现全网互通 一、划分VLAN&#xff0c;分配固定IP 因为两个路由器连接不同的交换机&#xff0c;所以左右两…

华三vlan配置

基于MAC地址划分vlan 配置思路&#xff1a; 创建VLAN 100、VLAN 200。 配置Device A和Device C的上行端口为Trunk端口&#xff0c;并允许VLAN 100和VLAN 200的报文通过。 配置 Device B 的下行端口为Trunk端口&#xff0c;并允许VLAN 100和VLAN 200的报文通过&#xff1b;上行…

计算机网络配置——VLAN的配置

一、实验目的 了解VLAN的作用和用途&#xff1b;掌握单一交换机与跨交换机划分VLAN的配置方法&#xff1b; 理解VLAN标签添加和删除的过程。 二、实验任务 在思科模拟器中实现下图所示的VLAN的配置&#xff1a; 使用ping命令验证配置结果&#xff0c;并完成实验报告。 二、…

H3C_交换机_Vlan配置

奶奶说&#xff0c;没事不要和小学生比爹。 一、实验环境 HCL v2.1.2win7操作系统 二、拓扑结构 三、模拟环境 一般用于企业网络或者需要对局域网进行逻辑区域划分的网络。不同vlan间一般情况是不能相互访问的&#xff0c;这样就可以减少广播和提高网络安全性。 四、介绍 …

华为交换配置之VLAN配置。

每天进步一点点&#xff01; 08 vlan 配置与原理 vlan 虚拟局域网 作用&#xff1a;实现同一vlan的设备才可以进行通信&#xff0c;不同vlan不能通信。 vlan tag&#xff1a;接口配置vlan后发生数据会携带相应的vlan tag&#xff08;vlan 标签&#xff09; VLAN ID&#…

VLAN,简单配置vlan

VLAN 在交换机中工作 分割广播域 物理分割--------子网掩码划分 逻辑分割---------VLAN划分 VLAN的优势 控制广播 增强网络安全性 简化网络管理 VLAN的种类 静态VLAN&#xff1a;基于端口划分静态VLAN 动态VLAN&#xff1a;基于MAC地址划分动态VLAN VLAN的ID范围 0~4095共4096…

VLAN基本配置

目录 一、VLAN概述 1、VLAN概念 1&#xff09;分隔广播域的两种方法 2、VLAN优势 1&#xff09;控制广播 2&#xff09;增强网络安全性 3&#xff09;简化网络管理 3、VLAN的种类 二、静态VLAN的配置 1、VLAN的范围 2、VLAN基本配置 1&#xff09;创建VLAN 2&#…

交换机VLAN基本配置

一、实验目的 &#xff08;1&#xff09;掌握交换机路由器基本配置。 &#xff08;2&#xff09;掌握VLAN基本配置。 二、实验环境 &#xff08;1&#xff09;4人1组&#xff0c;每组运行Windows 2008 Server/Windows XP/Windows 7/ Windows 10 操作系统的PC机4台&#xff0c…

华为ENSP的VLAN配置

华为ENSP vlan配置实验 实验一 实现同一个vlan下面的不同网段的ping通 网络拓扑图如下&#xff1a; ①配置两个pc端的ip地址和子网掩码、网关 ②对交换机进行vlan的配置 1&#xff09;创建vlan2 [SA]vlan 2 [SA-vlan2]quit2&#xff09;将两个网段的网关都加入vlan2 中&am…

VLAN简单配置详细过程

实验拓扑图 一、PC的 ip配置 PC1 Ip&#xff1a;192.168.1.1/24 PC2 Ip&#xff1a;192.168.1.2/24 PC3&#xff1a; Ip:192.168.1.3/24 PC4&#xff1a; Ip&#xff1a;192.168.1.4/24 二、路由器中命令 AR1中指令 <Huawei>undo t m …

VLAN配置

实验效果&#xff1a;相同VLAN能通讯&#xff0c;不同VLAN不能通讯 1.配置拓扑图如下&#xff1a;&#xff08;两台交换机和四台主机终端设备&#xff09; 2.四台终端设备设置IP地址和网关 PC0 IP地址&#xff1a;192.168.2.11 网关 192.168.2.1 PC1 IP地址&#xff1a;192.…

VLAN(含配置命令行)

一、VLAN的概念及优势 虚拟局域网&#xff08;VLAN&#xff09;是一组逻辑上的设备和用户&#xff0c;这些设备和用户并不受物理位置的限制&#xff0c;可以根据功能、部门及应用等因素将它们组织起来&#xff0c;相互之间的通信就好像它们在同一个网段中一样&#xff0c;由此得…

VLAN简单配置

VLAN——虚拟局域网 虚拟局域网&#xff08;Virtual Local Area Network&#xff09;简写VLAN vlan的作用&#xff1a;划分广播域&#xff0c;控制广播消息传递范围。将一个局域网划分成多个VLAN&#xff0c;减少广播所占用的带宽。 开始配置 软件&#xff1a;Cisco Packet …