java List集合使用笔记

news2024/11/24 9:08:23

1、List集合的特点

  • 有序集合、有序的序列,用户可以精准的控制元素插入的位置
  • 通过索引访问元素
  • 可以搜索元素
  • Set不同,List允许重复的元素存在
    -

2、List集合特有的方法

在这里插入图片描述

  • add(索引,元素)
    在这里插入图片描述
  • remove(索引):返回的是被删除的索引
    在这里插入图片描述
  • get(索引):获取指定位置的元素 在这里插入图片描述

3、List集合的遍历

3.1迭代器遍历

  • 和Collection一样可以使用迭代器遍历
    在这里插入图片描述
    注意迭代器遍历过程中修改元素,会造成并发修改异常

3.2 for循环遍历

  • 因为有下标,所以可以使用for循环遍历
    在这里插入图片描述
    for循环遍历,遍历过程中修改元素,不会造成并发修改异常

3.3 增强for循环遍历

在这里插入图片描述

4、列表迭代器(ListIterator )

  • 它是list集合特有的迭代器
  • 通过list集合的listIterator()方法得到一个列表迭代器
  • 允许在任意方向遍历
  • 在迭代期间修改列表,并获取位置
    常用方法
方法名说明
E next();返回迭代中的下一个元素
boolean hasNext();判断是否有下一个元素,有则返回true,无则false
E previous();返回迭代器中的上一个元素
boolean hasPrevious();判断是否有上一个元素,有则返回true,无则false
void add(E e);将指定的元素插入列表
void remove();从列表中删除由 next()或 previous()返回的最后一个元素(可选操作)
void set(E e);用指定的元素替换由 next()或 previous()返回的最后一个元素(可选操作)
public class Demo {
    public static void main(String[] args) {
        //建立List集合
        List<String> s=new ArrayList<>();

        //添加集合元素
        s.add("鸡");
        s.add("你");
        s.add("美");

        //建立List迭代器(ListIterator)
        ListIterator<String> lit = s.listIterator();


//        E next(); 返回迭代中的下一个元素
//        boolean hasNext(); 判断是否有下一个元素,有则返回true,无则false
        while(lit.hasNext()){
            String ss = lit.next();
            if (ss.equals("你")){
                //void add(E e); 将指定的元素插入列表(注意是lit调用add方法哦,是往!集合!中添加)
                lit.add("太");
            }
//            System.out.println(ss);//用迭代器内部输出是没有添加"太"元素的
        }
        System.out.println(s);


        System.out.println("=================================");


//        E previous(); 返回迭代器中的上一个元素
//        boolean hasPrevious(); 判断是否有上一个元素,有则返回true,无则false
        while (lit.hasPrevious()){//逆向索引(从后往前)
            String sss = lit.previous();
            if (sss.equals("鸡")){
//                void remove();从列表中删除由 next()或 previous()返回的最后一个元素(可选操作)
                lit.remove();
            }
//            System.out.println(sss);用迭代器内部输出是没有删除"鸡"元素的
        }
        System.out.println(s);

        System.out.println("=================================");
        
        //通常我们使用普通for多
        for (int i = 0; i < s.size(); i++) {
            String s1 = s.get(i);
            System.out.println(s1);
        }
    }
} 

输出:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/702025.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Arduino uno 环境配置 for Mac

1、IDE 在官网下载 官网地址&#xff1a;https://www.arduino.cc/en/software 看到钱&#x1f4b0;不要怕&#xff0c;只是问你捐不捐款&#xff0c;不收钱&#xff0c;你直接安装就行 &#xff08;你也可以捐一点&#xff5e;&#xff09; 安装之后 2、安装驱动 地址 &…

单片机-矩阵键盘密码锁

89C52RC芯片 1.矩阵按键输入正确密码&#xff0c;LCD1602右上角显示ok&#xff0c;错误显示Err。 涉及文件&#xff1a; 1.main.c (#include<regx52.h>) 2.lcd1602.c lcd1602.h 3.Delay.c Delay.h 4.MatrixKey.c MetrixKey.h 共7项 代码 main.c #…

此导入从不用作值,必须使用 “import type“ ,因为 “importsNotUsedAsValues“ 设置为 “error“。

前言 最近电脑更新了一次系统&#xff0c;重启后在 VsCode中打开项目 &#xff0c;发现原本正常的代码出现了一堆语法提示。网上搜了一下&#xff0c;没有找到关于此问题的回答&#xff0c;不知道我是不是第一个遇到的。在此记录一下这次的经历&#xff0c;如果有其他人遇到&a…

蓝桥杯专题-试题版含答案-【6174问题】【笨小熊】【鸡兔同笼】【小学生算数】

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列点击跳转>蓝桥系列 &#x1f449;关于作者 专注于Android/Unity和各种游…

突破APP广告收益天花板的多种数据优化方法

​APP开发者对于广告变现最关心的问题就是收益。事实上&#xff0c;广告收益与广告请求、曝光和点击等关键数据之间存在着密切的联系。这些数据的表现直接影响着广告的收益情况。 因此&#xff0c;开发者需要重视并优化这些关键链路数据。本文将介绍一些优化方法&#xff0c;帮…

zabbix 介绍及部署

目录 一、zabbix的基本概述 二、zabbix功能 &#xff08;一&#xff09;数据收集 &#xff08;二&#xff09;灵活的阈值定义 &#xff08;三&#xff09;高度可配置的告警 &#xff08;四&#xff09;实时图形 &#xff08;五&#xff09;网络监控功能 &#xff08;六…

牛客网专项练习——C语言错题集(10)

文章目录 两数相除后的数据类型if 语句表达式类似转义字符逗号表达式易错题指针概念异或刁钻题&#xff0c;多维数组地址自动变量 两数相除后的数据类型 C语言规定除法运算符( / )的运算结果的数据类型与被除数的数据类型保存一致&#xff0c;所以一个整数除以另一个整数的结果…

JPA 批量插入较大数据 解决性能慢问题

JPA 批量插入较大数据 解决性能慢问题 使用jpa saveAll接口的话需要了解原理&#xff1a; TransactionalOverridepublic <S extends T> List<S> saveAll(Iterable<S> entities) {Assert.notNull(entities, "Entities must not be null!");List<…

建设Web3需要Web2的人才?探索传统技能在Web3时代的作用

摘要&#xff1a;Web3作为下一代互联网技术的前沿&#xff0c;许多人关注着它的发展和应用。然而&#xff0c;建设Web3是否需要Web2的人才仍然是一个有争议的问题。 Web3作为下一代互联网技术&#xff0c;以去中心化、智能合约和用户自治等特点引起了广泛的关注。与此同时&…

基于STM32单片机的智能家居毕设

文章目录 一、硬件选型1、硬件清单2、硬件展示&#xff08;部分&#xff09; 二、效果展示1、整体效果展示2、显示屏&#xff08;触摸&#xff09;效果展示 三、功能分析1、系统总体结构框图2、主要包含的功能 四、怎么做&#xff1f;1、STM32单片机部分2、语音识别与播报部分3…

wamp环境解决局域网不能访问的问题!

安装好wamp后&#xff0c;想用手机通过局域访问电脑上wamp下的网页&#xff0c;结果出现如下提示403错误&#xff1a; 第一步&#xff1a;找到 conf 这个文件&#xff1a; 找到下图中红色方框中的onlineoffline tag - don’t remove&#xff0c;将原来的Require local替换为Re…

JMeter:如何开始简单的WEB压力测试?

目录 背景 如何开始简单的WEB压力测试 PutsReq网站截图 执行测试计划 背景 JMeter是一款广泛使用的性能测试工具&#xff0c;它可以模拟用户行为并生成负载&#xff0c;用于评估Web应用程序的性能和稳定性。 最近工作上被安排针对Web网站进行性能压测&#xff0c;以评估特…

chatgpt赋能python:关于Python除二取余法的优缺点分析

关于Python除二取余法的优缺点分析 Python是当前数据分析和科学计算最火热的语言之一&#xff0c;其中除二取余法是Python中很有趣的算法之一。它也是很常用的基础算法之一&#xff0c;特别是在图像处理和编码中&#xff0c;非常常用。除二取余法指的是一个数值除以二后的余数…

『手撕 Mybatis 源码』09 - MyBatis 插件

MyBatis插件 概述 问题&#xff1a;什么是Mybatis插件&#xff1f;有什么作用&#xff1f; Mybatis插件本质上来说就是一个拦截器&#xff0c;它体现了 JDK 动态代理和责任链设计模式的综合运用 Mybatis 中所允许拦截的方法如下 Executor 【SQL执行器】【update&#xff…

深信服行为感知系统远程命令执行

什么是男子汉?困难打不倒的人才是真正的男子汉&#xff01; 漏洞复现 构造payload访问漏洞url&#xff1a; /tool/log/c.php?strip_slashessystem&hostipconfig漏洞证明&#xff1a; 文笔生疏&#xff0c;措辞浅薄&#xff0c;望各位大佬不吝赐教&#xff0c;万分感谢…

linux服务器python2升级安装python3.7环境

文章目录 开始1. 首先&#xff0c;先检查自己的系统是否安装了python32. 如果你只是想安装python3.63. 安装python3.7的准备工作4. 安装python35. 添加软链接&#xff0c;让python3和pip3这两个命令指向刚刚安装的python3.76. 检验python3安装是否ok7. 更新默认 Python 版本8. …

Spring管理事务知识

目录 1.什么是事务 2.事务的特性ACID 3.Spring 管理事务的方式 4.Spring管理事务的体现&#xff1a;JDBCTemplate 5.声明式事务的属性有哪些 6.声明式事务属性---只读 7.声明式事务属性---超时 8.声明式事务属性---回滚策略 9.声明式事务属性---事务隔离级别 10.声明…

mac 安装 aab android包

一、配置bundletool环境 1、下载最新版的bundletool 版本号要最新的 bundletool-all-1.15.1.jarhttps://github.com/google/bundletool/releases/download/1.15.1/bundletool-all-1.15.1.jar Releases google/bundletool GitHub​​​​​​​​​​ 2、把bundletool放在…

简要介绍 | 基于Diffusion model的图像生成和重建

注1&#xff1a;本文系“简要介绍”系列之一&#xff0c;仅从概念上对基于Diffusion model的图像生成和重建进行非常简要的介绍&#xff0c;不适合用于深入和详细的了解。 基于Diffusion model的图像生成和重建 What are Stable Diffusion Models and Why are they a Step Forw…

Hyperledger Fabric架构设计

目录 1、逻辑架构 答疑&#xff1a;什么叫做背书策略&#xff1f; 2、运行时架构 答疑&#xff1a;什么是锚节点&#xff1f; 1、逻辑架构 Hyperledger Fabric从1.X开始&#xff0c;在扩展性及安全性方面有了很大的提升&#xff0c;且新增了诸多特性。 多通道&#xff1a;支…