java中集合的List

集合的List

可以存储重复元素

以下情况使用 ArrayList :

  • 频繁访问列表中的某一个元素。
  • 只需要在列表末尾进行添加和删除元素操作。

以下情况使用 LinkedList :

  • 你需要通过循环迭代来访问列表中的某些元素。
  • 需要频繁的在列表开头、中间、末尾等位置进行添加和删除元素操作。

一.ArrayList

可以保存重复元素,底层是数组实现,添加元素的类型可以是任意类型的
虽然集合中默认是可以添加任意数据类型,但是后续处理时,会出现类型转换问题
底层是一个数组,默认长度是10,当数组装满时,会自动扩容,(new=old+old/2)
		ArrayList arrayList=new ArrayList();arrayList.add(1);arrayList.add("abd");arrayList.add(true);for (int i=0;i<arrayList.size();i++){Object obj=arrayList.get(i);if(obj instanceof String){String s=(String)obj;//向下转型System.out.println(s.length());}}//ArrayList<String> 定义时,为集合中可以存储的数据设定一个类型,必须是类类型ArrayList<Integer>arrayList1=new ArrayList<>();arrayList1.add(10);//自动装箱ArrayList<String>arrayList2=new ArrayList<>();arrayList2.add("aa");ArrayList<String> arrayList3=new ArrayList<>();arrayList3.add("a");arrayList3.add("b");arrayList3.add("c");arrayList3.add("d");arrayList3.add("e");arrayList3.add("f");arrayList3.add("g");arrayList3.add("h");arrayList3.add("i");arrayList3.add("j");System.out.println(arrayList3);arrayList3.add(1,"H");//在1前加HSystem.out.println(arrayList3);arrayList3.remove("j");//把遇到的第一个j去掉System.out.println(arrayList3);arrayList3.remove(5);//把第5个索引去掉System.out.println(arrayList3);
ArrayList<String> arrayList3=new ArrayList<>();arrayList3.add("a");arrayList3.add("b");arrayList3.add("c");arrayList3.add("d");arrayList3.add("e");arrayList3.add("f");arrayList3.add("g");arrayList3.add("h");arrayList3.add("i");arrayList3.add("j");System.out.println(arrayList3.remove(0));//删除并返回指定位置上的元素(String类)arrayList3.clear();//清空元素System.out.println(arrayList3.contains("X"));//是否包含指定的元素System.out.println(arrayList3.get(3));//获得指定位置上的元素(底层是数组,获取元素的速度是最快的)System.out.println(arrayList3.indexOf("e"));//e的第一次索引System.out.println(arrayList3.lastIndexOf("e"));//e的最后一次索引System.out.println(arrayList3.isEmpty());//判断是否为空,空truearrayList3.set(7,"Y");//替换指定位置元素System.out.println(arrayList3.size());//获取集合中元素个数用size,字符串长度用lengthSystem.out.println(arrayList3);

二.LinkedList

元素比较多的用LInkedList

方法和ArrayList基本一致,只不过方法实现是用链表实现的

三.vector

  • Vector 是同步访问的。
  • Vector 包含了许多传统的方法,这些方法不属于集合框架。

Vector 主要用在事先不知道数组的大小,或者只是需要一个可以改变大小的数组的情况。

Vector 类支持 4 种构造方法。

第一种构造方法创建一个默认的向量,默认大小为 10

四.迭代器

Java迭代器(Iterator)是 Java 集合框架中的一种机制,是一种用于遍历集合(如列表、集合和映射等)的接口。

迭代器接口定义了几个方法,最常用的是以下三个:

  • next() - 返回迭代器的下一个元素,并将迭代器的指针移到下一个位置。
  • hasNext() - 用于判断集合中是否还有下一个元素可以访问。
  • remove() - 从集合中删除迭代器最后访问的元素(可选操作)。
LinkedList<String> l=new LinkedList<>();l.add("a");l.add("b");l.add("c");l.add("d");l.add("e");l.add("f");l.add("g");l.add("h");l.add("i");l.add("j");for (int i = 0; i < l.size(); i++) {System.out.println(l.get(i));}//增强for遍历for(String s:l){System.out.println(l);}
//使用迭代器遍历// 获取迭代器Iterator<String> qwq = l.iterator();//hasNext():判断是否存在下一个元素while(qwq.hasNext()){//如果存在,则调用next实现迭代System.out.println(l);}

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

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

相关文章

YOLOv8学习

1 YOLOv8训练自己的数据集 1.1 部署和运行 1.1.1 第一步&#xff0c;下载代码 源码地址 1.1.2 第二步&#xff0c;创建环境 默认已经安装好conda conda create -n yolopy38 python3.8conda activate yolopy38安装所需要的包&#xff0c;先cd到代码目录下 pip install -r…

陈芳允于1971年提出双星定位

中国究竟有多强大&#xff1f; - 知乎 真是天才设想&#xff01;通过两个同步卫星实现定位。定位原理&#xff1a;使用两个同步卫星&#xff0c;把地球作为第三星。 内容摘录如下&#xff1a; 大家都知道&#xff0c; 1970 年中国的「东方红一号」卫星升空。 但许多人不知…

基于Java的养老院管理系统的设计与实现(亮点:多角色、登录验证码、留言反馈)

养老院管理系统 一、前言二、我的优势2.1 自己的网站2.2 自己的小程序&#xff08;小蔡coding&#xff09;2.3 有保障的售后2.4 福利 三、开发环境与技术3.1 MySQL数据库3.2 Vue前端技术3.3 Spring Boot框架3.4 微信小程序 四、功能设计4.1 主要功能描述 五、系统实现5.1 养老院…

Linux底层基础知识

一.汇编&#xff0c;C语言&#xff0c;C&#xff0c;JAVA之间的关系 汇编&#xff0c;C语言&#xff0c;C可以通过不同的编译器&#xff0c;编译成机器码。而java只能由Java虚拟机识别。Java虚拟机可以看成一个操作系统&#xff0c;Java虚拟机是由汇编&#xff0c;C&#xff0c…

【深度学习实验】线性模型(三):使用Pytorch实现简单线性模型:搭建、构造损失函数、计算损失值

目录 一、实验介绍 二、实验环境 1. 配置虚拟环境 2. 库版本介绍 三、实验内容 0. 导入库 1. 定义线性模型linear_model 2. 定义损失函数loss_function 3. 定义数据 4. 调用模型 5. 完整代码 一、实验介绍 使用Pytorch实现 线性模型搭建构造损失函数计算损失值 二、…

WebGL笔记:设置画布底色,从样式中解析颜色并设置画布底色,设置动态画布底色

1 ) 通用结构代码 <canvas id"canvas"></canvas><script>// 获取dom元素const canvas document.querySelector("#canvas");// 设置宽高canvas.width 200;canvas.height 200;// 获取gl三维画笔const gl canvas.getContext("web…

idea创建springboot项+集成阿里连接池druid

创建项目并集成流程 1&#xff1a;前提准备2&#xff1a;创建springboot项目流程3&#xff1a;集成阿里连接池步骤4&#xff1a;集成swagger方便测试5&#xff1a;书写增删改查进行测试6&#xff1a;项目gitee地址 1&#xff1a;前提准备 准备开发工具&#xff1a;idea java环…

nginx知识点详解:反向代理+负载均衡+动静分离+高可用集群

一、nginx基本概念 1. nginx是什么&#xff0c;做什么事情&#xff1f; Nginx是一个高性能的HTTP和反向代理服务器&#xff0c;特点是占有内存少&#xff0c;并发能力强。Nginx转为性能优化而开发&#xff0c;能经受高负载考验。支持热部署&#xff0c;启动容易&#xff0c;运…

linux内核分析:线程和进程创建,内存管理

lec18-19:进程与线程创建 lec20-21虚拟内存管理 内核代码,全局变量这些只有一份,但是内核栈有多份,这可能就是linux线程模型1对1模式的由来。通过栈来做的 x86 CPU支持分段和分页(平坦内存模式)两种 分段,选择子那里就有特权标记了

Linux多线程【线程控制】

✨个人主页&#xff1a; 北 海 &#x1f389;所属专栏&#xff1a; Linux学习之旅 &#x1f383;操作环境&#xff1a; CentOS 7.6 阿里云远程服务器 文章目录 &#x1f307;前言&#x1f3d9;️正文1、线程知识补充1.2、线程私有资源1.3、线程共享资源1.4、原生线程库 2、线程…

GIS跟踪监管系统单元信息更新

GIS跟踪监管系统单元信息更新 单元信息更新。① 新增单元。② 编辑单元。③ 删除单元。物资查询&#xff08;1&#xff09;物资查询与展示。① 几何查询。• 单击查询&#xff1a;• 拉框查询&#xff1a;• 多边形查询&#xff1a;② 物资定位。• 多个物资定位&#xff1a; 单…

关于oss直传

为什么要使用oss直传&#xff1a; 前后端文件传输涉及数据较大&#xff0c;往往会成为很多项目的性能瓶颈。常见的传输方式也有不少&#xff0c;相对来说&#xff0c;OSS直传能够减轻很大压力。 传统方式相比直传OSS&#xff0c;相对来说有三个缺点&#xff1a; 上传慢&…

Visual Studio2019报错

1- Visual Studio2019报错 错误 MSB8036 找不到 Windows SDK 版本 10.0.19041.0的解决方法 小伙伴们在更新到Visual Studio2019后编译项目时可能遇到过这个错误&#xff1a;“ 错误 MSB8036 找不到 Windows SDK 版本 10.0.19041.0的解决方法”&#xff0c;但是我们明明安装了该…

pbjs生成的decode方法decode对象的问题

前端使用了pbjs编译proto文件, 使用编译后的encode方法序列化并post到服务器 contentType设置为application/x-protobuf(也尝试过使用application/octet-stream) 服务端接收到的二进制数据长这样, b\n\x03xxx\x12\x03p2p \xfb\xb2((\x81\xb6(B\t\xe7\x9a\x84\xe8\x90\xa8\xe8\…

智慧公厕:不放过任何“卫生死角”,为公共厕所装上“净化系统”。

#智慧公厕[话题]# #智慧公厕系统[话题]# #智慧公厕管理系统[话题]# #智慧公厕设备[话题]# #智慧公厕厂家[话题]# 在社会活动中&#xff0c;公共厕所是我们经常使用和停留的场所。然而&#xff0c;由于传统公共厕所的粗放式管理&#xff0c;导致卫生情况差、设备不齐全、配置破…

MySql中分割字符串

MySql中分割字符串 在MySql中分割字符串可以用到SUBSTRING_INDEX&#xff08;str, delim, count&#xff09; 参数解说       解释 str         需要拆分的字符串 delim         分隔符&#xff0c;通过某字符进行拆分 count          当 count 为正数&…

Learn Prompt-ChatGPT 精选案例:内容总结

ChatGPT 可以通过分析内容并生成一个浓缩版本来总结文本。这对节省时间和精力很有帮助&#xff0c;特别是在阅读长篇文章、研究论文或报告时。 通用总结​ 你所要做的就是把具体的文字复制并粘贴到提示中&#xff0c;并要求ChatGPT对所选文本进行简化总结。这里我们参考opena…

mac jdk,git,idea安装

根目录创建data文件夹 sudo vim /etc/synthetic.conf data /Users/simon/data 保存重启jdk下载安装 官网(太慢)&#xff1a; https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html 国内&#xff1a; http://www.codebaoku.com/jdk/jdk-oracle-jdk1-…

Linux的调试工具 - gdb(超详细)

Linux的调试工具 - gdb 1. 背景2. 开始使用指令的使用都用下面这个C语言简单小代码来进行演示&#xff1a;1. list或l 行号&#xff1a;显示文件源代码&#xff0c;接着上次的位置往下列&#xff0c;每次列10行。2. list或l 函数名:列出某个函数的源代码。3. r或run: 运行程序。…

Java进化史:从Java 8到Java 17的语言特性全解析

文章目录 Java 8&#xff1a;引入Lambda表达式和Stream APILambda表达式Stream API Java 9&#xff1a;模块化系统模块Jigsaw项目 Java 10&#xff1a;局部变量类型推断Java 11&#xff1a;引入HTTP客户端HTTP客户端 Java 12&#xff1a;引入Switch表达式Switch表达式 Java 13到…