《Java面向对象》课件-6.1 List集合_第1页
《Java面向对象》课件-6.1 List集合_第2页
《Java面向对象》课件-6.1 List集合_第3页
《Java面向对象》课件-6.1 List集合_第4页
《Java面向对象》课件-6.1 List集合_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

模块六集合与泛型目录/Contents01List集合02泛型0304Map集合Stream流List集合任务一学习目标熟悉List集合的作用,能够简述List集合常用的方法以及常用实现类的特点

先定一个小目标!掌握ArrayList集合的使用,能够使用ArrayList实现数据的增删改查掌握LinkedList集合的使用,能够使用LinkedList实现数据的增删改查List集合简介List集合是一个有序集合,允许存储重复的元素。List集合中的元素按照插入的顺序进行存储,并且可以通过索引访问和操作其中的元素。List集合简介List集合不但继承了Collection集合中的全部方法,还提供了一些根据元素索引操作集合的特有方法。方法声明功能描述voidadd(intindex,Objectelement)将对象element插入List集合的index索引处booleanaddAll(intindex,Collectionc)将集合c中的所有元素插入到List集合的index索引处Objectget(intindex)返回集合中索引位置为index的元素Objectremove(int

index)删除集合中索引位置为index的元素Objectset(int

index,Object

element)将索引位置为index的元素替换成element对象,并将替换后的对象返回intindexOf(Object

o)返回对象o在List集合中第一次出现的索引位置intlastIndexOf(Object

o)返回对象o在List集合中最后一次出现的索引位置ListsubList(int

fromIndex,int

toIndex)返回从索引fromIndex(包括)到

toIndex(不包括)的所有元素组成的子集合ArrayList集合ArrayList集合是List集合的一个实现类,其内部封装了一个长度可变的数组对象,当存入的元素超过数组长度时,ArrayList会分配一个更大的数组来存储这些元素,因此可以将ArrayList集合看作一个长度可变的数组。ArrayList具有数组的特点,即读取元素效率较高,插入和删除元素时,可能需要移动其他元素的位置,导致效率相对低一些。ArrayList集合ArrayList集合的构造方法。方法声明功能描述ArrayList()创建一个初始容量为10的空ArrayList对象ArrayList(intinitialCapacity)创建一个指定初始容量的空ArrayList对象ArrayList(Collection<?extendsE>c)创建一个包含指定Collection元素的ArrayList对象ArrayList集合ArrayList集合提供了三种构造方法。方法声明功能描述ArrayList()创建一个初始容量为10的空ArrayList集合ArrayList(intinitialCapacity)创建一个指定初始容量的空ArrayList集合ArrayList(Collection<?extendsE>c)创建一个包含指定Collection元素的ArrayList集合ArrayList集合通过一个案例演示ArrayList集合的基本操作。案例演示Example01.java源代码ArrayList集合案例的运行结果如下图所示。案例演示LinkedList集合ArrayList集合在查询元素时速度很快,但在增删元素时效率相对低一些。如果需要频繁向集合中插入和删除元素,可以使用List集合的另一个实现类LinkedList。LinkedList集合LinkedList底层结构:双向循环链表。链表中每个节点都通过引用的方式记录它前一个或后一个节点,从而将所有节点连接在一起。LinkedList集合插入和删除元素的过程如下图所示。LinkedList集合LinkedList集合除了包含从List集合继承过来的方法,还定义了一些自身特有的方法。方法声明功能描述voidaddFirst(Object

o)将指定元素o插入集合的开头voidaddLast(Object

o)将指定元素o添加到集合的结尾Object

getFirst()返回集合的第一个元素Object

getLast()返回集合的最后一个元素Object

removeFirst()移出并返回集合的第一个元素Object

removeLast()移出并返回集合的最后一个元素LinkedList集合下面通过一个案例演示LinkedList常用方法的使用。案例演示Example02.java源代码LinkedList集合案例的运行结果如下图所示。案例演示集合的遍历在开发中,对集合进行遍历是非常常见的操作。Java提供了一个接口Iterator,用于遍历Collection集合中的元素。同时,Java还提供了增强for循环,也称为for-each循环,增强for循环在遍历数组或者实现了Iterable接口的集合对象时非常方便,它会自动迭代集合中的每个元素,无须手动管理索引值。集合的遍历1.使用Iterator迭代器遍历集合使用Iterator迭代器访问集合中的元素的常用方法。方法声明功能描述booleanhasNext()判断集合中是否还有下一个元素可以访问Objectnext()返回集合中的下一个元素,并将迭代指针移到下一个位置voidremove()从集合中移除通过next()方法获取到的元素集合的遍历1.使用Iterator迭代器遍历集合下面通过一个案例演示如何使用Iterator接口的方法对集合进行遍历。Example03.java源代码集合的遍历1.使用Iterator迭代器遍历集合案例的运行结果如下图所示。集合的遍历1.使用Iterator迭代器遍历集合Iterator迭代器迭代元素的过程。集合的遍历脚下留心:并发修改异常在使用Iterator遍历集合时,如果在遍历过程中使用集合对象的remove()方法删除元素,会出现并发修改异常。这是Iterator用于检测并发修改的一种机制,当集合在遍历过程中发生结构性修改(例如添加元素,删除元素),迭代器的内部计数器发生变化,从而抛出并发修改异常(ConcurrentModificationException)。集合的遍历脚下留心:并发修改异常下面通过一个案例演示并发修改异常。Example04.java源代码集合的遍历脚下留心:并发修改异常案例的运行结果如下图所示。6.4集合的遍历脚下留心:并发修改异常如果想要安全地删除集合中的元素,可以使用Iterator接口提供的remove()方法,它会在删除元素后通知迭代器集合结构发生了改变,避免出现并发修改异常。下面把Example04.java文件中第13~15行代码修改为如下代码。int[]arr; //声明一个int[]类型的变量arr=newint[3]; //为arr分配3个数组元素的空间修改后再次运行案例,结果如右图所示。集合的遍历2.使用增强for循环遍历集合从JDK5开始,Java提供了增强for循环,简化了Iterator接口遍历的书写。在遍历集合时,增强for循环语法上是在编译时被转换成Iterator迭代器的while循环实现的,因此它适用于实现了Iterator接口的集合类。集合的遍历2.使用增强for循环遍历集合下面通过一个案例演示使用增强for循环遍历集合的方式。Example05.java源代码集合的遍历2.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论