Java集合之List

news2024/12/27 12:12:52

ArrayLsit集合

ArrayList集合的特点

ArrayList集合的一些方法

①.add(Object element) 向列表的尾部添加指定的元素。

②.size() 返回列表中的元素个数。

③.get(int index) 返回列表中指定位置的元素,index从0开始。

public class Test {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<String>(); //<String>泛型表示集合中存的是字符串形式的元素。
        list.add("青城"); //add()用于向List集合容器中添加元素。
        list.add("博雅");
        System.out.println(list);
        System.out.println(list.size()); //size()用于获取集合中有多少个元素。
        System.out.println(list.get(1)); //get()获取指定索引(从0开始)位置的元素。
    }
}

 ④.add(int index, Object element) 在列表的指定位置(从0开始)插入指定元素

public class Test {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<String>();
        list.add("qc");
        list.add("by");
        System.out.println(list);
        list.add(1, "gc"); //在指定位置添加元素,原来位置的元素后置。
        System.out.println(list);
    }
}

⑤.set(int i, Object element) 使用元素element替换索引i位置的元素,并返回被替换的元素。

public class Test {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<String>();
        list.add("qc");
        list.add("by");
        System.out.println(list);
        list.set(1, "wd"); //替换指定位置的元素,从0开始,替换了“wd”。
        System.out.println(list);
    }
}

⑥.clear() 从列表中移除所有元素。

⑦.isEmpty() 判断列表是否包含元素,不包含元素则返回 true,否则返回false。

public class Test {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<String>();
        list.add("qc");
        list.add("by");
        System.out.println(list);
        list.clear(); //清空List集合中的所有元素。
        System.out.println(list.isEmpty()); //集合容器没有元素,则true。
        System.out.println(list);
    }
}

⑧.contains(Object o) 如果列表包含指定的元素,则返回 true。

public class Test {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<String>();
        list.add("qc");
        list.add("by");
        boolean flag = list.contains("gc"); //用来判断集合容器中是否含有参数元素。
        System.out.println(flag);
    }
}

⑨.remove(int index) 移除列表中指定位置的元素,并返回被删元素,删除位置后面的元素(如果有)向前移动。

public class Test {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<String>();
        list.add("qc");
        list.add("by");
        list.add("gc");
        System.out.println(list.remove(1)); //删除指定索引(从0开始)位置的元素,并将元素返回,并后面元素前移。
        System.out.println(list);
    }
}

⑩.remove(Object o) 从List集合中移除第一次出现的指定元素,移除成功返回true,否则返回false。当且仅当List集合中含有满(o==null ? get(i)==null : o.equals(get(i)))条件的最低索引i的元素时才会返回true。

public class Test {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<String>();
        list.add("青城");
        list.add("博雅");
        list.add("博雅");
        list.add("教育");
        System.out.println(list.remove("博雅")); //删除List集合元素,返回boolean,并后面元素前移。
        System.out.println(list);
    }
}

11.iterator() 返回按适当顺序在列表的元素上进行迭代的迭代器。

public class Test {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<String>();
        list.add("青城");
        list.add("博雅");
        Iterator<String> ite = list.iterator(); //将List集合中元素转到iterator变量中。
        while(ite.hasNext()) //hasNext()判断当前“指针”下面是否还有元素的方法,java中没有指针,这只是举个例子。
        {
            System.out.println(ite.next()); //如果“指针”下面有元素,则移动“指针”并获取相应位置的元素。
        }
    }
}

12.for循环遍历List集合:

public class Test {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<String>();
        list.add("青城");
        list.add("博雅");
        for (int i = 0; i < list.size(); i++) {  //用size方法获取长度。
            System.out.println(list.get(i));  //用get方法获取值。
        }
    }
}

13.加强for循环遍历List集合:

public class Test {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<String>();
        list.add("青城");
        list.add("博雅");
        for (String name : list) {   //使用foreach进行遍历。
            System.out.println(name);
        }
    }
}

LinkedList集合

LinkedList集合的特点

LinkedList集合的一些方法

①.添加

boolean add(Object element) 它将元素附加到列表的末尾。

boolean add(int index,Object element) 指定位置插入。

void addFirst(E element) 元素附加到列表的头部

void addLast(E element) 元素附加到列表的尾部

LinkedList<Integer> linkedList = new LinkedList<>();
linkedList.add(1);
linkedList.add(2);
linkedList.add(3);
linkedList.addFirst(4);
linkedList.addFirst(5);
linkedList.addLast(6);
linkedList.add(2,9);
System.out.println(linkedList); 

②:获取数据

Object get(int index) 根据下标获取数据

Object getFirst() 它返回链表的第一个元素。

Object getLast() 它返回链接列表的最后一个元素。

LinkedList<Integer> linkedList = new LinkedList<>();
linkedList.add(1);
linkedList.add(2);
linkedList.add(3);
System.out.println("获取下标为1的元素:"+linkedList.get(1));
System.out.println("链表的第一个元素:"+linkedList.getFirst());
System.out.println("链表的最后一个元素:"+linkedList.getLast());

③.查询

boolean contains(Object element)如果元素存在于列表中,则返回true。

LinkedList<Integer> linkedList = new LinkedList<>();
linkedList.add(1);
linkedList.add(2);
linkedList.add(3);
linkedList.add(1);
System.out.println("是否出现过元素1:"+linkedList.contains(1));
System.out.println("是否出现过元素4:"+linkedList.contains(4));

④.修改

Object set(int index,Object element)它用于用新元素替换列表中的现有元素

LinkedList<Integer> linkedList = new LinkedList<>();
linkedList.add(1);
linkedList.add(2);
linkedList.add(3);
linkedList.add(1);
linkedList.set(1,9);
System.out.println("更新过的链表:"+linkedList);

⑤.删除

E remove() 删除第一个元素

E remove(int location) 删除指定位置的元素

E removeFirst() 删除并返回链接列表的头部一个元素

E removeLast() 删除并返回链接列表的尾部一个元素

LinkedList<Integer> linkedList = new LinkedList<>();
linkedList.add(1);
linkedList.add(2);
linkedList.add(3);
linkedList.add(1);
linkedList.remove(); //删除第一个元素
linkedList.remove(2);//删除指定位置的元素
System.out.println(linkedList);

6. 清空

void clear():它删除列表中的所有元素。

LinkedList<Integer> linkedList = new LinkedList<>();
linkedList.add(1);
linkedList.add(2);
linkedList.add(3);
linkedList.add(1);
linkedList.clear();
System.out.println(linkedList);

7.链表长度

LinkedList<Integer> linkedList = new LinkedList<>();
linkedList.add(1);
linkedList.add(2);
linkedList.add(3);
linkedList.add(1);
System.out.println("链表的长度:"+linkedList.size());

Vector集合

Vector集合的特点

List集合总结

 

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

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

相关文章

【Python学习笔记】记载解决Python报错HTTP Error 403: Forbidden的一波三折过程

【Python学习笔记】记载解决Python报错HTTP Error 403: Forbidden的一波三折过程 当前进度&#xff1a;还没有解决&#xff0c;但是已经尝试了好几种办法&#xff0c;此处做个记录&#xff0c;也许能帮上忙。 本帖是整理回顾帖&#xff0c;不是教程帖&#xff0c;追求一个完美…

QT日志调试系统(前台、后台、文件查看调试信息)

通过qInstallMessageHandler获取Qt的打印信息&#xff0c;将这些打印信息存放到一个Widget中&#xff0c;实现不通过后台就能查看日志信息。 实现方法如下&#xff1a; main.cpp #include "mainwidget.h" #include <QApplication> #include <QStyleFactory…

yum的安装和使用(包含安装过程中遇到的问题及解决方法)

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

2022年十月份电赛OpenMV巡线方案详细代码分析(1)

前言 &#xff08;1&#xff09;马上要进行电赛了&#xff0c;机器识别是铁定会使用到的。为了防止出现去年十月份那种特殊的巡线方案。我在此分享出OpenMV巡线方案&#xff0c;并且进行讲解和分析如何更改。 &#xff08;2&#xff09;学习本文之前&#xff0c;需要学习&#…

通过nexus3部署公司内部的私有npm仓库

简介&#xff1a; 登录时使用默认用户admin&#xff0c;密码不知道就需要找默认的&#xff0c;点击Sign in时会提示你路径&#xff0c;这里我是这样查的&#xff0c;在linux服务器上输入以下命令 ​编辑 前言&#xff1a; 准备工作&#xff0c;可能需要一台linux服务器&#x…

Jenkins报警机制的配置与Linux的使用总结

先在钉钉中添加一个机器人 在Configure System中找到机器人选项&#xff0c;并且复制webhook到网络钩子&#xff0c;然后添加机器人的编号、名称和关键词&#xff0c;然后点击测试&#xff0c;如果显示测试成功则表示配置成功&#xff0c;最后保存 再到配置中勾选顶顶机器人的定…

19.matlab数据分析插值(matlab程序)

1.简述 数据插值的计算机制 数据插值是一种函数逼近的方法。 一维插值 Y1interp1(X,Y,X1,method) 二维插值 interp2():二维插值函数。 调用格式: Z1interp2(X,Y,Z,X1,Y1,method) 其中&#xff0c;X、Y是两个向量&#xff0c;表示两个参数的采样点, Z是采样点对应的函数值。X1…

flutter开发实战-Stagger Animation实现水波纹动画

flutter开发实战-实现水波纹动画&#xff0c;使用到了交织动画&#xff0c;实现三个圆逐渐放大与渐变的过程。 一、效果图 二、实现水波纹效果 实现水波纹动画&#xff0c;使用到了交织动画&#xff0c;实现三个圆逐渐放大与渐变的过程。 交织动画 有些时候我们可能会需要一些…

一种具有改进的反向导通、击穿和开关特性的新型4H-SiC沟道MOSFET

标题&#xff1a;A New 4H-SiC Trench MOSFET With Improved Reverse Conduction, Breakdown, and Switching Characteristics 阅读日期&#xff1a;2023.07.23 研究了什么 该文提出并通过TCAD模拟研究了一种带有集成MOS通道二极管&#xff08;MCD&#xff09;的SiC MOSFET&a…

性能测试Ⅵ(总结)

locust&#xff1a;是基于Python语言的性能测试工具&#xff0c;它是基于协程的思想来进行设计的。Python语言是没有办法利用多核的优势&#xff0c;所以了Python为了解决这个问题&#xff0c;设计了协程&#xff0c;作为协程的任务&#xff0c;遇到IO堵塞就立刻切换。 生命是协…

FFmpeg5.0源码阅读—— avcodec_send_frame avcodec_receive_packet

摘要&#xff1a;本文主要描述了FFmpeg中用于编码的接口的具体调用流程&#xff0c;详细描述了该接口被调用时所作的具体工作。   关键字&#xff1a;ffmpeg、avcodec_send_frame、avcodec_receive_packet   读者须知&#xff1a;读者需要了解FFmpeg的基本使用流程&#xf…

AQS概述

基本介绍 队列同步器AbstractQueuedSynchronizer&#xff08;以下简称同步器&#xff09;&#xff0c;是用来构建锁或者其他同步组件的基础框架。 使用了一个int成员变量&#xff08;volatile int state&#xff09;表示同步状态&#xff0c;通过内置的FIFO队列来完成资源获取…

【NLP】如何使用Hugging-Face-Pipelines?

一、说明 随着最近开发的库&#xff0c;执行深度学习分析变得更加容易。其中一个库是拥抱脸。Hugging Face 是一个平台&#xff0c;可为 NLP 任务&#xff08;如文本分类、情感分析等&#xff09;提供预先训练的语言模型。 本博客将引导您了解如何使用拥抱面部管道执行 NLP 任务…

不写代码开启Restful服务

1 前言 很久没有写文章了&#xff0c;不管什么原因&#xff0c;总觉得心里还是觉得有点焦虑&#xff0c;不看看书写点东西就有莫名的焦虑&#xff0c;仿佛只有忙起来才能忘记焦虑。虽然我也知道更重要的是思考方向&#xff0c;但是就像走路&#xff0c;不出发随着时间的流逝&am…

MacBook外接键盘修改键位

众所周知&#xff0c;MacBook的键盘和Windows差别很大&#xff0c;比如我们最常用的ctrlcv在Mac下是commandcv…而外接键盘往往是Windows布局&#xff0c;因此如何修改外接键盘键位就是一件很重要的事情&#xff01; 首先&#xff0c;我们要知道Win键在Mac系统中是多余的&…

微服务一 实用篇 - 5.分布式搜索引擎(ElasticSearch基础)

《微服务一 实用篇 - 5.分布式搜索引擎&#xff08;ElasticSearch基础&#xff09;》 提示: 本材料只做个人学习参考,不作为系统的学习流程,请注意识别!!! 《微服务一 实用篇 - 5.分布式搜索引擎&#xff08;ElasticSearch基础&#xff09;》 《微服务一 实用篇 - 5.分布式搜索…

mysql悲观锁与乐观锁、死锁

mysql悲观锁与乐观锁、死锁 乐观锁的缺点 这个策略源于 mysql 的 mvcc 机制&#xff0c;使用这个策略其实本身没有什么问题&#xff0c;主要的问题就是**对数据表侵入较大&#xff0c;我们要为每个表设计一个版本号字段&#xff0c;然后写一条判断 sql 每次进行判断&#xff…

k8s Service网络详解(一)

有关K8s网络的几个概念 Service&#xff1a;服务 Endpoint&#xff1a;端点 Ingress&#xff1a;和Service类似&#xff0c;基于OSI&#xff08;Open System Interconnection&#xff09;网络模型的七层协议数据&#xff08;如HTTP&#xff09;的转发 Kube Proxy&#xff1…

155、基于STM32单片机老人防跌倒摔倒GSM短信报警系统ADXL345加速度设计(程序+原理图+PCB源文件+参考论文+硬件设计资料+元器件清单等)

毕设帮助、开题指导、技术解答(有偿)见文未 目录 一、硬件方案 二、设计功能 三、实物图 四、原理图 五、PCB图 六、程序源码 资料包括&#xff1a; 需要完整的资料可以点击下面的名片加下我&#xff0c;找我要资源压缩包的百度网盘下载地址及提取码。 单片机主芯片选…

【C语言初阶】指针的运算or数组与指针的关系你了解吗?

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏:《快速入门C语言》《C语言初阶篇》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 文章目录 &#x1f4cb; 前言&#x1f4ac; 指针运算&#x1f4ad; 指针-整数&#x1f4ad; 指针-指针&#x1f4ad; 指针…