首页 > 其他分享 >通过迭代器对list集合中的元素进行增删改操作

通过迭代器对list集合中的元素进行增删改操作

时间:2022-12-08 13:34:14浏览次数:51  
标签:String 迭代 list System println add 增删 listIterator

package com.liftsail.qiniurefererdemo.test;

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

/**
 * @Author: liftsail
 * @Date: 2022/12/8 11:44
 * @Description: 不积跬步无以至千里
 */
public class ListTest {

    @SuppressWarnings({"rawtypes", "unchecked"})
    public static void main(String[] args) {
        List list = new ArrayList();
        list.add("a");//Object obj = new String();
        list.add("b");
        list.add("world");
        list.add("c");
        list.add("d");
        list.add("e");

        //1.并发错误
        /*Iterator it = list.iterator();    //获取迭代器
        while (it.hasNext()) {            //判断集合中是否有元素
            String str = (String) it.next();    //向下转型
            if ("world".equals(str)) {
                list.add("java");
                //遍历的同时在增加元素,并发修改ConcurrentModificationException
            }
        }
        list.forEach(a -> System.out.println(a));
        */

        //2.如果想在遍历的过程中添加元素,可以用ListIterator中的add方法
        ListIterator listIterator = list.listIterator();//获取迭代器(List集合特有的)
        while (listIterator.hasNext()) {
            String str = (String) listIterator.next();            //向下转型
            if ("world".equals(str)) {
                listIterator.remove();
                listIterator.add("java-666");
            }
        }
        System.out.println(listIterator);
        list.forEach(a -> System.out.println(a));

        //3.迭代器的指针
        /*ListIterator li = list.listIterator();//获取迭代器
        while (li.hasNext()) {
            System.out.println(li.next());//获取元素并将指针向后移动
        }
        System.out.println("-----------------");
        while (li.hasPrevious()) {
            System.out.println(li.previous()); //获取元素并将指针向前移动
        }*/
    }

}

 

标签:String,迭代,list,System,println,add,增删,listIterator
From: https://www.cnblogs.com/liftsail/p/16965832.html

相关文章

  • JavaWeb三大组件(Servlet、Filter、Listener)
    vue.runtime.esm.js:587[Vuewarn]:Errorincallbackforwatcher"form.psiType":"TypeError:Cannotreadpropertiesofundefined(reading'form')"——————......
  • GRBL错误代码列表 grbl error list
    'error:1':_('G-codewordsconsistofaletterandavalue.Letterwasnotfound.'),'error:2':_('Numericvalueformatisnotvalidormissinganexpectedva......
  • VBA学习笔记3-数据结构类型SortedList
    https://blog.csdn.net/lyfegf/article/details/103750912?spm=1001.2101.3001.6650.6&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-......
  • List的两种子类LinkedList, ArrayList的选择
    List的两种子类LinkedList,ArrayList的选择背景:LeetCode的一道回溯题目78.子集分析题目意思是枚举所有的子集,必然想到回溯算法,本人使用回溯习惯使用一个成员变量链......
  • JavaWeb三大组件(Servlet、Filter、Listener)
    前言JavaWeb三大组件指的是:Servlet程序、Filter过滤器、Listener监听器,它们在JavaWeb开发中分别提供不同的功能,然而很多人有只用过Servlet、Filter,很少接触到Listener......
  • AmazonS3对象存储实现增删查
    1importcom.amazonaws.AmazonServiceException;2importcom.amazonaws.SdkClientException;3importcom.amazonaws.auth.AWSStaticCredentialsProvider;4......
  • 迭代器对象
    目录迭代器一.可迭代对象二.迭代器对象三.for循环的本质迭代器一.可迭代对象1.可迭代对象 对象内置有__iter__方法的都称为可迭代对象 """ 1.内置方法通过点的方......
  • 前端学习之------树形列表转list
    1、树形数据为:2、方法letresult=[]//结果数组lettreeToList=(treeArr)=>{treeArr.forEach(treeitem=>{result.push({id:treeitem.i......
  • CSV__04--python使用迭代器读取csv文件出现读取结果为空的解决办法
    1迭代器的概念迭代器(iterator)有时又称光标(cursor)是程序设计的软件设计模式,可在容器对象(container,例如链表或数组)上遍访的接口。2迭代器的特点强制性:必须将元素从迭代......
  • mybatis-plus增删改查方法汇总
    //查询所有List<T>list();//查询列表List<T>list(Wrapper<T>queryWrapper);//查询(根据ID批量查询)Collection<T>listByIds(Collection<?extendsSerializable......