版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
--List集合1.集合的概念以及API的使用2.Collection接口3.
迭代器Iterator接口4.List接口5.实现类ArrayList和LinkedList的使用集合的概念集合:JavaAPI所提供的一系列类的实例,可以用于动态存放多个对象。JDK所提供的集合API位于java.util包内。集合框架图JavaCollectionsFramework图如下JDK所提供的集合API位于java.util包内。集合框架图(简单)集合框架图(详细)Collection接口Collection接口中定义了一些集合常用方法方法说明int
size();
返回此collection中的元素数boolean
isEmpty();判断此collection中是否包含元素。boolean
contains(Object
obj);判断此collection是否包含指定的元素。boolean
add(Object
element);
向此collection中添加元素。boolean
remove(Object
element);
从此collection中移除指定的元素。voidclear();
移除些collection中所有的元素。Iterator
iterator();
返回在此collection的元素上进行迭代的迭代器Object[]
toArray();把此collection转成数组。集合中泛型的使用JDK1.4以前:装入集合的数据都会被当作Object对象来存放,从而失去了自己的实际类型。从集合中取出元素时,需要进行强制类型转换。效率低,容易产生错误。JDK5.0之后,可以用泛型来解决这个问题在定义一个集合时就指定集合存储的对象的数据类型如:Collection<String>
coll
=
new
ArrayList<String>();从集合中取出元素时,无需转型了。如:String
str1
=
it.next();集合中泛型的优点优点:简化集合的使用增强代码的可读性和稳定性意义:用于保护存入集合中元素的数据类型Iterator接口所有实现了Collection接口的集合类都有一个iterator()方法用以返回一个实现了Iterator接口的对象。Iteratorit=coll.iterator();Iterator迭代器的工作原理Iterator是专门的迭代输出接口。所谓的迭代输出就是将元素进行判断,判断是否有内容,如果有内容则把内容取出。Iterator对象称作迭代器,用以方便的实现对集合内元素的遍历操作。Iterator迭代器的使用方法Iterator接口中定义了如下方法:booleanhasNext();//判断游标右边是否有元素Objectnext();//返回游标右边的元素并将游标移动到下一个位置voidremove();//删除游标左面的元素元素1元素2元素3元素4元素5游标用forEach遍历集合中的元素凡是能用Iterator迭代的集合都可以用JDK5.0中增强的for循环来更简便的遍历。List接口List接口是Collection接口的子接口实现List接口的集合类中的元素是有序的,且允许重复。List集合中的元素都对应一个整数型的序号记载其在集合中的位置,可以根据序号存取集合中的元素。JDK
API所提供的List集合类常用的有ArrayListLinkedListVector(并不常用)List接口结构图List接口常用方法List接口比Collection接口中新增的几个实用方法:public
Objectget(intindex);返回列表中的元素数publicObjectadd(intindex,Objectelement);在列表的指定位置插入指定元素.将当前处于该位置的元素(如果有的话)和所有后续元素向右移动publicObjectset(int
index,Object
element);用指定元素替换列表中指定位置的元素publicObjectremove(int
index);移除列表中指定位置的元素publicListIteratorlistIterator()返回此列表元素的列表迭代器实现类——ArrayListArrayList是使用数组结构实现的List集合。优点:对于使用索引取出元素有较好的效率它使用索引来快速定位对象缺点:元素做删除或插入速度较慢因为使用了数组,需要移动后面的元素以调整索引顺序。实现类——LinkedListLinkedList是使用双向链表实现的集合。LinkedList新增了一些插入、删除的方法。优点:对频繁的插入或删除元素有较好的效率适合实现栈(Stack)和队列(Queue)栈(Stack)和队列(Queue)栈(Stack)的存储特点:LIFO后进先出(lastinfirstout)队列(Queue)的存储特点:FIFO先进先出(firstinfirstout)向量Vector(了解)旧版的ArrayList,它大多数操作跟ArrayList相同,区别之处在于Vector是线程同步的。它有一枚举方式可以类似Iterator进行遍历访问:importjava.util.Vector;importjava.util.Enumeration;publicclassVectorTest{ publicstaticvoidmain(String[]args){ Vector<String>v=newVector<String>(); v.add("向量"); v.add("123"); v.add("abc"); Enumeration<String>e=v.elements(); while(e.hasMoreElements()){ System.out.println("---"+e.nextElement()); } }}总结Collection接口的使用List接口中的常用方法ArrayList和LinkedList实现类的使用预习与作业预习内容Set集合作业1.创建一个User类,用于name,password两个成员变量。在主函数中使用for循环创建10个User对象,并对成员变量赋值,在for循环
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年系统工程师(系统维护)考题及答案
- 2025年大学智能电网工程技术(电力调度控制)试题及答案
- 2025年高职工业机器人技术(机器人故障排除与维护)试题及答案
- 2025年大学大三(农业机械化及其自动化)农业机械维修基础测试题及答案
- 2025年大学大一(人力资源管理)组织行为学基础阶段测试题及答案
- 临床颈部颈动脉瘤的影像表现
- 深度解析(2026)《GBT 18139.1-2000信息技术 代码值交换的通 用结构 第1部分编码方案的标识》
- 深度解析(2026)《GBT 17980.139-2004农药 田间药效试验准则(二) 第139部分玉米生长调节剂试验》
- 深度解析(2026)《GBT 17980.27-2000农药 田间药效试验准则(一) 杀菌剂防治蔬菜叶斑病》
- 深度解析(2026)《GBT 17680.6-2025核电厂应急准备与响应准则 第6部分:场内应急组织与职能》
- (完整版)医务社会工作
- Science and Technology科学与技术课件
- 电梯形式检测报告
- 脱硝催化剂拆除及安装(四措两案)
- GB/T 19867.6-2016激光-电弧复合焊接工艺规程
- 第八章散粮装卸工艺
- PET-成像原理扫描模式和图像分析-课件
- 体外诊断试剂工作程序-全套
- 施工企业管理课件
- DB32 4181-2021 行政执法案卷制作及评查规范
- JJF (苏) 178-2015 防潮柜温度、湿度校准规范-(现行有效)
评论
0/150
提交评论