list集合

List集合

List集合的概述

  • 有序集合(也称之为序列),用户可以精确的控制列表中的每个元素的插入位置。用户可以通过整数索引访问元素,并搜索列表中的元素

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

  • List 集合的特点

    • 有序:存储和读取的元素顺序一致

    • 可重复:存储的元素可以重复

demo:
在这里插入图片描述

List集合中的常用方法

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

add和remove方法

demo:

package demo02;import java.util.ArrayList;
import java.util.List;
/*** @Classname : demo02* @Description : TODO List集合中的特有方法* @Author : lin_refuel@qq.com*/
public class demo02 {public static void main(String[] args) {//TODO 一个list的集合,list集合是带有索引的,List<String> list = new ArrayList<>();// TODO 常用的几个方法,add添加元素list.add("东邪");list.add("西毒");list.add("南帝");list.add("北丐");list.add(2, "王重阳");//集合索引为2的位置添加王重阳System.out.println(list);System.out.println("==========================");//TODO remove,删除指定位置元素,返回被删除元素,删除索引为2的值System.out.println(list.remove(2));//返回值是王重阳System.out.println(list);}
}

set 和 get 方法

package demo02;import java.util.ArrayList;
import java.util.List;
/*** @Classname : demo02* @Description : TODO List集合中的特有方法* @Author : lin_refuel@qq.com*/
public class demo02 {public static void main(String[] args) {//TODO 一个list的集合,list集合是带有索引的,List<String> list = new ArrayList<>();list.add("东邪");list.add("西毒");list.add("南帝");list.add("北丐");list.add(2, "王重阳");//集合索引为2的位置添加王重阳System.out.println(list);// TODO set方法,修改指定索引的值list.set(2,"周伯通");//王重阳被修改成为了周伯通System.out.println(list);//TODO get方法,返回指定索引的值System.out.println(list.get(3));//返回”南帝“}
}

运行结果
在这里插入图片描述

List集合的几种遍历方式

package demo02;import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;/*** @Classname : demo03* @Description : TODO List集合的几种遍历方式* @Author : lin_refuel@qq.com*/
public class demo03 {public static void main(String[] args) {//空的list集合List<String> list = new ArrayList<>();//添加几个元素list.add("雷伊");list.add("盖亚");list.add("卡修斯");list.add("布莱克");//TODO list集合遍历:方式一 for循环进行遍历for (int i = 0; i < list.size(); i++) {System.out.print(list.get(i)+",");}System.out.println("\n===================");//TODO 方式二:增强for循环for(String name : list){System.out.print(name+",");}System.out.println("\n===================");//TODO 方式三:迭代器 IteratorIterator<String> it = list.iterator();while (it.hasNext())System.out.print(it.next()+",");}
}

并发性异常的起因和处理方式

并发性异常,当使用迭代器遍历集合时,往集合里面添加新的元素,这个会导致迭代器报出异常,该异常是非检测性异常

在这里插入图片描述
demo: 处理上面异常的方式

package demo02;import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;/*** @Classname : demo04* @Description : TODO 并发性异常处理方式* @Author : lin_refuel@qq.com*/
public class demo04 {public static void main(String[] args) {List<String> list = new ArrayList<>();//集合里面的原始数据list.add("JavaSE");list.add("JavaScript");list.add("MySQL");list.add("JavaWeb");//建立一个for循环,先进行添加for (int i = 0; i < list.size(); i++) {if("MySQL".equals(list.get(i)))list.add(i+1,"JDBC");}//System.out.println(list);//再次通过迭代器进行遍历Iterator<String> it = list.iterator();while(it.hasNext()) {System.out.print(it.next()+",");}}
}

ListIterator迭代器

  • ListIterator:列表迭代器

    • 通过 List 集合的 listIterator() 方法得到,所以他是 List 集合的特有迭代器

    • 用于允许程序员沿任何一个方向遍历列表的迭代器,在迭代期间修改列表,并获取列表迭代器的当前位置

方法名说明
E next()返回迭代中的下一个元素
boolean hasNext()如果迭代具有更多元素,则返回 true
E pervious()返回列表中的上一个元素
boolean hasPrevious()如果此列表迭代器在相反方向遍历列表是具有更多元素,则返回 true
void add(E e)将指定元素插入列表
package demo02;import java.util.ArrayList;import java.util.ListIterator;/*** @Classname : demo05* @Description : TODO List iterator* @Author : lin_refuel@qq.com*/
public class demo05 {public static void main(String[] args) {//一个空的集合ArrayList<String> list = new ArrayList<>();//添加元素list.add("JavaSE");list.add("HTML");list.add("JavaScript");list.add("JDBC");//迭代器存储的原始的目录ListIterator<String> lit = list.listIterator();//循环遍历while (lit.hasNext()){System.out.print(lit.next()+",");}System.out.println("\n===========================");//TODO 集合的反向遍历是需要先进行一次正常遍历后才能反向遍历//  ListIterator<String> lit = list.listIterator();while(lit.hasPrevious()){System.out.print(lit.previous()+",");}}
}

运行结果:
在这里插入图片描述

ListIterator的并非性异常处理

package demo02;import java.util.ArrayList;
import java.util.ListIterator;/*** @Classname : demo06* @Description : TODO ListIterator并发性异常处理* @Author : lin_refuel@qq.com*/
public class demo06 {public static void main(String[] args) {ArrayList<String> list = new ArrayList<>();//添加元素list.add("JavaSE");list.add("HTML");list.add("MySQL");list.add("JavaScript");//使用list集合的特有的迭代器ListIterator进行遍历ListIterator<String> lit = list.listIterator();//在"MySQL",的后面添加"JDBC"while(lit.hasNext()){String str = lit.next();if(str.equals("MySQL"))// TODO list.add("JDBC"); 会出现并非性异常//解决方式:调用ListIterator迭代器的方法add可以避免问题lit.add("JDBC");}System.out.println(list);}
}

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

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

相关文章

JavaScript测验——使用赋值运算符---第3关

校验规则 以上代码数值8被赋给变量myVar中&#xff0c;然后再次将变量myVar解析为8并将其赋给myNum变量。 闯关&#xff1a; 把数值6赋给变量 x。 然后把变量x中的内容赋给变量y。

antd table排序 vue_商品品牌业务之Vue编写前端页面

今天是刘小爱自学Java的第145天。感谢你的观看&#xff0c;谢谢你。学习计划安排如下&#xff1a;打算从前端页面到后台服务器代码完整地写一遍&#xff0c;但显然我高估了自己的实力&#xff0c;几个小时的时间根本不够用。并且因为教程和vue现在最新的组件用法不一样&#xf…

websphere内存设置_WebSphere Classloader内存泄漏预防

websphere内存设置解决应用程序类加载器泄漏 应用领域 倾向于&#xff1a; 使用应用程序类加载器中的Runnable实现启动新线程。 即使JEE编程模型不支持此功能&#xff0c;客户也经常直接创建新线程或通过使用间接创建它们 计时器 客户必须确保在停止相应的应用程序&#xf…

zookeeper删除节点的权限_Zookeeper使用超级用户删除带权限的节点

1.背景Zookeeper管理员会因为某些客户端对某些节点设置了权限&#xff0c;而导致在紧急的情况下无法修改这些节点感到困扰。在这种情况下&#xff0c;管理员可以通过Zookeeper超级用户模式访问这些节点&#xff0c;一旦设置了超级权限访问节点&#xff0c;后续的操作就不需要ch…

JavaScript测验——使用赋值运算符初始化变量---第4关

通常在声明变量的时候会给变量初始化一个初始值。 例如: var myVar 0; 以上代码创建一个名为myVar的变量并指定一个初始值0。

Zabbix-3.0.0 安装Graphtree

导读Zabbix中&#xff0c;想要集中展示图像&#xff0c;唯一的选择是screen&#xff0c;后来zatree解决了screen的问题&#xff0c;但性能不够好。Graphtree 由OneOaaS开发并开源出来&#xff0c;用来解决Zabbix的图形展示问题&#xff0c;性能较好。一、Graphtree功能概述集中…

装饰器设计模式示例

本文是我们名为“ Java设计模式 ”的学院课程的一部分。 在本课程中&#xff0c;您将深入研究大量的设计模式&#xff0c;并了解如何在Java中实现和利用它们。 您将了解模式如此重要的原因&#xff0c;并了解何时以及如何应用模式中的每一个。 在这里查看 &#xff01; 目录 …

5.1.2全景声音箱摆位_如何体验全景声

如何体验全景声&#xff08;科普&#xff09;要想体验全景声&#xff0c;三大要素不可少。1、输出设备&#xff1a;支持全景声的播放设备&#xff0c;比如碟机&#xff0c;比如电视盒子&#xff0c;比如XBOXONEX。如果电视和音响都支持EARC&#xff0c;则可以不用播放设备&…

JavaScript测验——未初始化的变量---第5关

校验规则 当你用一个值是undefined的变量来做字符串拼接操作的时候&#xff0c;它会输出字符串"undefined"。 闯关: 定义 3 个变量a、b、c&#xff0c;并且分别给他们赋值&#xff1a;3、9、"I am pretty"&#xff0c;这样它们值就不会是undefined了。

Java中使用Socket实现服务器端和客户端通讯

创建服务器端serverSocket 1 import java.io.BufferedReader;2 import java.io.IOException;3 import java.io.InputStream;4 import java.io.InputStreamReader;5 import java.io.OutputStream;6 import java.io.PrintWriter;7 import java.net.ServerSocket;8 import java.ne…

修改telnet提示并非_俊翔:修改ECU数据解除奔驰GL350尿素限制

为达到排放要求&#xff0c;很多乘用柴油车都要加尿素(Adblue)&#xff0c;以降低废气排放。在轿车维修当中&#xff0c;最常见的有奔驰GL350、路虎揽胜出现尿素锁定。仪表上提示加尿素&#xff0c;并且限制启动次数。每当把发动机熄火再启动一次&#xff0c;次数就会减少&…

JavaScript测验——变量名大小写---第6关

校验规则 例如&#xff1a; var userName; var userLoginFlag;闯关: 修改已声明的变量&#xff0c;让它们的命名符合驼峰命名法的规范。 这个需要注意的是在声明和赋值时都应该使用驼峰命名法。

python编码规范

python编码规范 文件及目录规范 文件保存为 utf-8 格式。程序首行必须为编码声明&#xff1a;# -*- coding:utf-8 -*-文件名全部小写。代码风格 空格 设置用空格符替换TAB符。代码缩进为4个空格符。仅在运算符前后&#xff08;如,-,,&#xff09;各加一个空格&#xff0c;不要在…

redux异步action_React躬行记(12)——Redux中间件

Redux的中间件&#xff08;Middleware&#xff09;遵循了即插即用的设计思想&#xff0c;出现在Action到达Reducer之前&#xff08;如图10所示&#xff09;的位置。中间件是一个固定模式的独立函数&#xff0c;当把多个中间件像管道那样串联在一起时&#xff0c;前一个中间件不…

java方法示例注释 @_Java注释和真实世界的Spring示例

java方法示例注释 “注释”是编程语言定义的一种&#xff0c;并用作“标记”。 可以将它们视为编程语言引擎可以理解的注释行。 它们不会直接影响程序的执行&#xff0c;但会直接影响程序的执行。 定义 注释使用interface关键字定义&#xff0c;并且与接口相似。 它具有定义类…

监控与管理

本文是我们名为“ Spring Integration for EAI ”的学院课程的一部分。 在本课程中&#xff0c;向您介绍了企业应用程序集成模式以及Spring Integration如何解决它们。 接下来&#xff0c;您将深入研究Spring Integration的基础知识&#xff0c;例如通道&#xff0c;转换器和适…

郑州智慧岛大数据管委会_数据科学融通应用数学 ‖ 智慧岛大讲堂

8月6日上午&#xff0c;郑东新区智慧岛大数据实验区管委会&#xff0c;举办了“数据科学融通应用数学”专题智慧岛大讲堂讲座&#xff0c;邀请到北京大学数学科学学院副教授、大数据分析与应用技术国家工程实验室郑州数字创新中心主任卢朓为本次大讲堂活动做主题分享&#xff0…

浏览器中的WebSocket(ws://127.0.0.1:9988);

<script type"text/javascript">function WebSocketTest(){if ("WebSocket" in window){alert("您的浏览器支持 WebSocket!");// 打开一个 web socketvar ws new WebSocket("ws://localhost:9998/echo");ws.onopen function()…