Java中List集合介绍

news2024/11/14 5:27:30

一.List集合的概述和特点

  • List集合的概述

    • 有序集合,这里的有序指的是存取顺序

    • 用户可以精确控制列表中每个元素的插入位置,用户可以通过整数索引访问元素,并搜索列表中的元素

    • 与Set集合不同,列表通常允许重复的元素

  • List集合的特点

    • 存取有序

    • 可以重复

    • 有索引

二.List集合的特有方法【应用]

方法介绍

方法名描述
void add(int index,E element)在此集合中的指定位置插入指定的元素
E remove(int index)删除指定索引处的元素,返回被删除的元素
E set(int index,E element)修改指定索引处的元素,返回被修改的元素
E get(int index)返回指定索引处的元素

 1.add方法

//void add(int index,E element)       在此集合中的指定位置插入指定的元素
//细节:原来索引上的元素会依次往后移
 public static void main(String[] args) {
        //1.创建一个集合
        List<String> list = new ArrayList<>();
        //2.添加元素
        list.add("aaa");
        list.add("bbb");//1
        list.add("ccc");
        //void add(int index,E element)       在此集合中的指定位置插入指定的元素
        //细节:原来索引上的元素会依次往后移
        list.add(1,"QQQ");
        System.out.println(list);//[aaa, QQQ, bbb, ccc]
    }

2.remove方法

 //E remove(int index) 删除指定索引处的元素,返回被删除的元素
        String remove = list.remove(1);
        System.out.println(remove);//QQQ
        System.out.println(list);//[aaa, bbb, ccc]
        System.out.println("------------------");

细节

List系列集合中的两个删除的方法
1.直接删除元素
2.通过索引进行删除
删除元素
因为在调用方法的时候,如果方法出现了重载现象
优先调用,实参跟形参类型一致的那个方法。

 remove有二种方法 第一种是直接根据索引来删除

public static void main(String[] args) {
        //1.创建集合并添加元素
        List<Integer> list = new ArrayList<>();
        list.add(1);
        list.add(2);
        list.add(3);
        //2.删除元素
        //请问:此时删除的是1这个元素,还是1索引上的元素?
        //为什么?
        //因为在调用方法的时候,如果方法出现了重载现象
        //优先调用,实参跟形参类型一致的那个方法。
        list.remove(1);
        System.out.println(list);

    }

 第二种是根据元素来删除

 //手动装箱,手动把基本数据类型的1,变成Integer类型
        Integer i = Integer.valueOf(1);
        list.remove(i);
        System.out.println(list);//[2, 3]

3.set方法

    //E set(int index,E element)          修改指定索引处的元素,返回被修改的元素
        String str = list.set(1, "www");
        System.out.println(str);//bbb
        System.out.println(list);//[aaa,www, ccc]
        System.out.println("------------------");

4.get方法

 // E get(int index)                    返回指定索引处的元素
        String s = list.get(1);
        System.out.println(s);//www
        System.out.println(list);//[aaa,www, ccc]
    }

三.List集合的五种遍历方式【应用】

  1. 迭代器

  2. 列表迭代器

  3. 增强for

  4. Lambda表达式

  5. 普通for循环

1.迭代器方法

public static void main(String[] args) {
        //创建集合并添加元素
        List<String> list = new ArrayList<>();
        list.add("aaa");
        list.add("bbb");
        list.add("ccc");

        // 1.迭代器
        Iterator<String> it=list.iterator();
        while(it.hasNext()){
            String str = it.next();
            System.out.println(str);
        }
    }

2.增强for

//2.增强for
        //下面的变量s,其实就是一个第三方的变量而已。
        //在循环的过程中,依次表示集合中的每一个元素
        for (String s : list) {
            System.out.println(s);
        }

 

3.lambda表达式

  //3.Lambda表达式
        //forEach方法的底层其实就是一个循环遍历,依次得到集合中的每一个元素
        //并把每一个元素传递给下面的accept方法
        //accept方法的形参s,依次表示集合中的每一个元素
        list.forEach(( s)->System.out.println(s));

  

4.普通for循环

 //4.普通for循环
        //size方法跟get方法还有循环结合的方式,利用索引获取到集合中的每一个元素
        for (int i = 0; i < list.size(); i++) {
            String str = list.get(i);
            System.out.println(str);
        }

5.列表迭代器

//获取一个列表迭代器的对象,里面的指针默认也是指向0索引的
//额外添加了一个方法:在遍历的过程中,可以添加元素
 ListIterator <String> it=list.listIterator();
       while(it.hasNext()){
           String str = it.next();
           System.out.println(str);
           if("bbb".equals(str)){
               it.add("hhh");
           }
       }
        System.out.println(list);//[aaa, bbb, hhh, ccc]

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

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

相关文章

Unity海面效果——6、反射和高光

Unity引擎制作海面效果 大家好&#xff0c;我是阿赵。 上一篇的结束时&#xff0c;海面效果已经做成这样了&#xff1a; 这个Shader的复杂程度已经比较高了&#xff1a; 不过还有一些美中不足的地方。 1、 海平面没有反射到天空球 2、 在近岸边看得到水底的部分&#xff0c;水…

GitLab介绍,以及add an SSH key

GitLab GitLab 是一个用于仓库管理系统的开源项目&#xff0c;现今并在国内外大中型互联网公司广泛使用。 git,gitlab,github区别 git 是一种基于命令的版本控制系统&#xff0c;全命令操作&#xff0c;没有可视化界面&#xff1b; gitlab 是一个基于git实现的在线代码仓库…

昇思25天学习打卡营第12天|基于MindSpore的GPT2文本摘要

基于MindSpore的GPT2文本摘要 数据集加载 使用nlpcc2017摘要数据&#xff0c;共包含5万个样本&#xff0c;内容是新闻正文及其摘要。 from mindnlp.utils import http_get from mindspore.dataset import TextFileDataset# 下载数据集 url https://download.mindspore.cn/t…

简过网:2024年一级造价工程师正在报名中,看看你有报考资格吗?

计划报考2024一级造价工程师的小伙伴要注意了&#xff0c;现在一造报名正在启动中&#xff0c;想考试的小伙伴一定要看清楚这些报考条件和考试内容哦&#xff0c;今天&#xff0c;小编和大家一块来分享一下&#xff0c;希望对你有帮助。 几个简单的问题&#xff0c;让你彻底了解…

67.SAP FICO-凭证类型学习

目录 SAP凭证类型 凭证类型的作用 - OBA7 SAP默认的凭证类型更改 FI相应事务代码默认凭证类型 - OBU1 对FB50、60、70默认凭证类型的更改 - OBZO 后勤货物移动默认凭证类型 - OMBA 发货凭证类型 收货凭证类型 自动移动凭证类型 存货盘点凭证类型 发票默认的凭证类…

vue项目本地开启https协议访问(vite)

官网介绍&#xff1a;vite官方文档 1、根据官方文档安装依赖vitejs/plugin-basic-ssl npm install -D vitejs/plugin-basic-ssl2、在vite.config.js或者vite.config.ts中配置&#xff1a;server中的https和plugins import { defineConfig } from "vite"; import b…

AURORA仿真

AURORA 仿真验证 定义&#xff1a;AURORA是一种高速串行通信协议&#xff0c;通常用于在数字信号处理系统和其他电子设备之间传输数据。它提供了一种高效的方式来传输大量数据&#xff0c;通常用于需要高带宽和低延迟的应用中。AURORA协议通常由Xilinx公司的FPGA器件支持&#…

KBPC5010-ASEMI逆变焊机专用KBPC5010

编辑&#xff1a;ll KBPC5010-ASEMI逆变焊机专用KBPC5010 型号&#xff1a;KBPC5010 品牌&#xff1a;ASEMI 封装&#xff1a;KBPC-4 正向电流&#xff08;Id&#xff09;&#xff1a;50A 反向耐压&#xff08;VRRM&#xff09;&#xff1a;1000V 正向浪涌电流&#xff…

【YOLO格式的数据标签,目标检测】

标签为 YOLO 格式&#xff0c;每幅图像一个 *.txt 文件&#xff08;如果图像中没有对象&#xff0c;则不需要 *.txt 文件&#xff09;。*.txt 文件规格如下: 每个对象一行 每一行都是 class x_center y_center width height 格式。 边框坐标必须是 归一化的 xywh 格式&#x…

AutoMQ 产品动态 | 发布 1.1.0,兼容至 Apache Kafka 3.7,支持 Kaf

2024年05-06月动态 01 云原生 Kafka 内核 AutoMQ 发布 1.1.0 版本&#xff0c;兼容 Apache Kafka 到 3.7 版本。 AutoMQ 采用存算分离的思路重构 Apache Kafka&#xff0c;计算层 100% 保留 Kafka 代码&#xff0c;可以更好、更快地适配 Apache Kafka 新版本。经过代码 Revi…

三菱FX3U转OPC UA服务器的配置指南

在工业4.0的浪潮中&#xff0c;传统企业正面临着前所未有的转型压力&#xff0c;其中最为紧迫的挑战之一便是如何高效便捷地将PLC数据无缝集成到PC端上位软件中。我们知道&#xff0c;如果直接从PLC采集数据&#xff0c;不仅涉及复杂的技术难题&#xff0c;如繁琐的软件开发和冗…

MySQL之备份与恢复(五)

备份与恢复 备份数据 符号分隔文件备份 可以使用SQL命令SELECT INTO OUTFILE以符号分隔文件格式创建数据的逻辑备份。(可以用mysqldump的 --tab选项导出到符号分隔文件中)。符号分隔文件包含以ASCII展示的原始数据&#xff0c;没有SQL、注释和列名。下面是一个导出为逗号分隔…

请编写函数,判断一字符串是否是回文,若是回文函数返回值为1,否则返回值为0,回文是顺读和倒读都一样的字符串

int gets_arr(char* p) {int i 0;int j strlen(p) - 1;while (i < j && p[i] p[j]){i;j--;}if (i<j){return 0;}else {return 1;}} int main() {printf("请输入一串字符串\n");char arr[100];gets(arr);int ret gets_arr(arr);if (ret 1){printf(…

如何降低pdf内存,如何降低pdf內存大小,如何降低pdf内存占用

在现代办公环境中&#xff0c;pdf文件已经成为了一种不可或缺的文档格式。然而&#xff0c;pdf内存太大文件常常给我们的工作带来困扰&#xff0c;本文将为你揭秘几种简单有效的方法&#xff0c;帮助你轻松降低 pdf 内存&#xff0c;提高工作效率。 方法一、安装pdf转换软件 打…

能源电子领域2区SCI,版面稀缺,即将截稿,无版面费!

【SciencePub学术】今天小编给大家推荐1本能源电子领域的SCI&#xff01;影响因子1.0-2.0之间&#xff0c;最重要的是审稿周期较短&#xff0c;对急投的学者较为友好&#xff01; 能源电子类SCI 01 / 期刊概况 【期刊简介】IF&#xff1a;1.0-2.0&#xff0c;JCR2区&#xf…

安防监控视频平台LntonCVS视频监控管理平台智慧仓储应用方案

在当前许多大型工厂和物流基地中&#xff0c;仓库是存放物品的核心地点。这些仓库不仅存放大量货物&#xff0c;还配备大量辅助设备&#xff0c;需要全面监管以避免安全事故和财产损失。传统的人工巡检方式已经无法满足现代大规模监管的需求&#xff0c;尤其是面对仓储物品种类…

【区块链+跨境服务】粤澳健康码跨境互认系统 | FISCO BCOS应用案例

2020 年突如其来的新冠肺炎疫情&#xff0c;让社会治理体系面临前所未见的考验&#xff0c;如何兼顾疫情防控与复工复产成为社会 各界共同努力的目标。区块链技术作为传递信任的新一代信息基础设施&#xff0c;善于在多方协同的场景中发挥所长&#xff0c;从 而为粤澳两地的疫情…

C基础day6

1、思维导图 2、 #include<myhead.h> #define MAX 10 int main(int argc, const char *argv[]) {//定义一个数组&#xff0c;用于存储班级所有成员的成绩int score[MAX] {0};//完成对成员成绩的输入for(int i0;i<MAX;i){//任意一个元素score[i]printf("请输入第…

数据库查询基础:单表查询与多表查询

❤❤前言 &#x1f44d;&#x1f44d;点关注&#xff0c;编程梦想家&#xff08;大学生版&#xff09;-CSDN博客&#xff0c;不迷路❤❤ 数据库是现代软件开发中不可或缺的一部分&#xff0c;它帮助我们存储、检索和管理大量数据。在这篇文章中&#xff0c;我们将探讨数据库查…

智慧科技照亮水利未来:深入剖析智慧水利解决方案如何助力水利行业实现高效、精准、可持续的管理

目录 一、智慧水利的概念与内涵 二、智慧水利解决方案的核心要素 1. 物联网技术&#xff1a;构建全面感知网络 2. 大数据与云计算&#xff1a;实现数据高效处理与存储 3. GIS与三维可视化&#xff1a;提升决策支持能力 4. 人工智能与机器学习&#xff1a;驱动决策智能化 …