版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
--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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 冷库租赁合同
- 房屋买卖及土地使用权转让合同(04版)
- 创意医疗护理模组教学
- PH计的使用方法-刘佳课件
- 幼儿毕业典礼方案
- 合同终止VS合同解除
- 2024年度软件开发合同:甲方委托乙方开发款移动应用的详细条款2篇
- 《抽样设计及》课件
- 消化不良治疗原则
- 最完整离婚协议书大全2篇
- 茶百道整合营销方案
- 腰椎间盘突出症一病一品
- 2024-2024英语全国卷一完形填空整合
- 2024年湖北兴发化工集团股份有限公司招聘笔试参考题库含答案解析
- 脑梗死伴高血压3级病例分析专题报告
- 孕妇心衰健康宣教
- 工程量计算表(模板)
- 急诊科的工作风险与安全防范措施
- 社区矫正法教育知识讲座
- 医疗健康管理项目推广运营方案
- 胃石症的护理查房
评论
0/150
提交评论