首页 > 编程语言 >Java中ArrayList的遍历与删除元素方式总结

Java中ArrayList的遍历与删除元素方式总结

时间:2023-04-22 19:22:15浏览次数:43  
标签:遍历 Java 删除 ArrayList 元素 list add

在Java编程中,我们经常需要对数据结构进行遍历操作,并根据业务需求删除部分元素。而数组列表(ArrayList)是集合类中的一种,它可以动态地添加和删除元素,非常适合在程序中使用。本篇博客将总结ArrayList中的两种遍历和删除元素的方式。

在下面的示例代码中,我们先定义了一个ArrayList对象,并向其中添加了若干个字符串元素:

ArrayList<String> list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("b");
list.add("b");
list.add("c");
list.add("d");
list.add("f");

接下来,我们将采用两种方式来遍历并删除ArrayList中的元素。

  1. 使用Iterator迭代器遍历和删除元素:

使用ArrayList的iterator()方法可以返回一个实现了Iterator接口的迭代器对象。因为Iterator接口中提供了remove()方法,所以通过Iterator迭代器可以方便地遍历并删除ArrayList中的元素。

以下是使用迭代器遍历和删除元素的代码:

Iterator<String> it = list.iterator();
while(it.hasNext()){
    String s = it.next();
    if("b".equals(s)){
        it.remove();
    }
}

这里通过调用ArrayList对象的iterator()方法获取一个实现了Iterator接口的迭代器对象it,然后使用while循环和hasNext()方法遍历集合中的元素,如果值等于"b",则调用remove()方法将其从集合中删除。

  1. 使用普通for循环遍历和删除元素:

由于ArrayList是一个基于数组实现的数据结构,因此可以使用普通的for循环来遍历和删除其中的元素。由于删除元素后,原本在这个位置之后的元素都要往前移动一位,所以需要注意修改下标的值,否则会出现数据丢失或IndexOutOfBoundsException等异常情况。

以下是使用普通for循环遍历和删除元素的代码:

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

这里通过size()方法获取ArrayList中元素的数量,并使用普通的for循环遍历集合,如果当前元素的值等于"b",则调用remove()方法将其从集合中删除,同时将下标减1。

最终,我们可以使用以下两个方法来测试上述逻辑:

public static void main(String[] args)  {
    ArrayList<String> list = new ArrayList<>();
    list.add("a");
    list.add("b");
    list.add("b");
    list.add("b");
    list.add("c");
    list.add("d");
    list.add("f");

    Iterator<String> it = list.iterator();
    while(it.hasNext()){
        String s = it.next();
        if("b".equals(s)){
            it.remove();
        }
    }

    System.out.println(list);

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

    System.out.println(list);
}

以上就是关于Java中ArrayList的遍历和删除元素的两种方式的总结。

今后会将总结一些常用的遍历方法,便于以后工作学习使用。

标签:遍历,Java,删除,ArrayList,元素,list,add
From: https://www.cnblogs.com/new-one/p/17343736.html

相关文章

  • java下载pdf等静态文件
    java下载pdf等静态文件  packagecom.example.climbnumber;importjava.io.FileOutputStream;importjava.io.InputStream;importjava.io.OutputStream;importjava.net.URL;importjava.net.URLConnection;importjava.util.zip.GZIPInputStream;publicclass......
  • Redis 的Java客户端——Jedis连接池的使用详解
    一.Redis的Java客户端jedis的官方仓库地址:https://github.com/redis/jedisRedis数据结构Redis是一个key-value的数据库,key一般是String类型,不过value的类型多种多样。1.1引入Redis依赖<dependency><groupId>redis.clients</groupId><artifactId>jedis</......
  • Java 把 Map 的值(Value)转换为 Array, List 或 Set
    概述在这篇短文中,我们将会展示如何把Map中的值取出来,转换为一个Array,、List或者一个Set。 当然,你可以使用JavaJDK来进行转换,你也可以使用Guava来进行转换。 首先,让我们来看看,如何使用原生的JavaJDK把一个Map的值换行为Array。@TestpublicfinalvoidgivenU......
  • Java 把 Map 的值(Value)转换为 Array, List 或 Set
    概述在这篇短文中,我们将会展示如何把Map中的值取出来,转换为一个Array,、List或者一个Set。 当然,你可以使用JavaJDK来进行转换,你也可以使用Guava来进行转换。 首先,让我们来看看,如何使用原生的JavaJDK把一个Map的值换行为Array。@Testpublicfinal......
  • 理解 Java8 的时间API(一)时区
    理解Java8的时间API:java.time由于Java的时间API:java.util.Date、java.util.Calendar、java.util.TimeZone使用起来非常混乱,因此Java8重新设计了一套时间API,放在java.time.*包下。如果需要熟练使用新的LocalDateTime,LocalDate,LocalTime类,最好是先了解时区的概念。因此本文先......
  • Java开发 - 读写分离初体验
    前言上一篇中,我们介绍了主从复制,相信学过的小伙伴已经能够很好的掌握主从复制的技术,实际上也并没有那么难,虽然没有讲一主多从,多主多从的配置,但是从一主一从的配置中也很容易联想到该怎么配置,你没猜错,就是你想的那样。这篇博客,我们要讲解的东西是主从复制的应用——读写分离。一般来......
  • Java基础知识点API之Object
    一:概述Object是java中的顶级父类,所有的父类都直接或间接地继承于Object类。Object类中的方法可以被所有子类访问,所以我们要学习Object类和其中的方法。二·:OBject的构造方法及其常用的成员方法publicObject()//空参构造classStudent(){privateStringname;private......
  • Java获取拼多多搜索词推荐 API接口(item_search_suggest-获得搜索词推荐)
    搜索词推荐的作用1.可以精准把控流量2.可以测试产品款式测试产品图片3.提升类目在平台的排名4.提升销量,加速报名参加平台的活动5.提升ROI,日常平销item_search_suggest-获得搜索词推荐公共参数名称类型必须描述keyString是调用key(必须以GET方式拼接在URL中)secretString是调用密钥(接......
  • javasec(八)jndi注入
    JNDIJNDI(全称JavaNamingandDirectoryInterface)是用于目录服务的JavaAPI,它允许Java客户端通过名称发现和查找数据和资源(以Java对象的形式)。与主机系统接口的所有Javaapi一样,JNDI独立于底层实现。此外,它指定了一个服务提供者接口(SPI),该接口允许将目录服务实现插入到框架中......
  • Java中方法的定义及注意事项
    一、方法什么是方法:方法(method)是程序中最小的执行单元实际开发中,什么时候用到方法:重复的代码、具有独立功能的代码可以抽取到方法中实际开发中,方法有什么好处:可以提高代码的复用性可以提高代码的可维护性方法的定义格式:publicstatic返回值类型方法名(参数){......