




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第05章集合和泛型本章内容1Java 集合2泛型讲解时间:40分钟实践时间:20分钟1 Java 集合1.1 集合框架Employee emp1 = new Employee();Employee emp2 = new Employee();.Employee empArray = new Employee10;/初始化数组大小公司的员工数量在不断的变化 需要同时存储员工编号和员工对象,且根据编号查找对应的员工对象使用数组可否解决以上需求?使用集合可以解决复杂的数据存储问题1.1 集合框架的概念与结构n Java中的集合框架是指一系列存储数据的接口和类,这些类和接口 都位于java.util包
2、中n 使用集合框架可以解决复杂的数据存储问题,Java中内置了丰富的 集合框架1.2 List接口Collection接口List接口存储顺序有序可以保存重复元素实现n List接口的定义1.2 List接口的定义 ArrayList用法类似于数组,且其容量可按需要动态调整,亦被称为动态数组List接口的常用子类有:ArrayList和Vectorn List接口的常用方法List list = new ArrayList()/list接口指向实现类的实例Student stu = new Student();/实例化Studentlist.add(java oop); list.add(1)
3、;/自动装箱将int类型自动包装成Integerlist.add(jsp); list.add(Stu);/添加Student对象list.remove(stu);/删除指定的内容list.remove(1);/ 删除指定位置的元素for(int i=0;ilist.size();i+) System.out.println(list.get(i);/根据索引获取指定位置的元素 list.removeAll(list);/删除集合中的所有元素 System.out.println(list.size();/获取集合中元素的个数1.2 List接口的定义返回类型方法名称描述voidaddFirs
4、t()将指定元素插入此列表的开头voidaddLast()将指定元素添加到此列表的结尾ObjectremoveFirst()移除并返回此列表的第一个元素ObjectremoveLast()移除并返回此列表的最后一个元素booleanadd(Object o)将指定的元素添加到列表中n LinkedList表示链表的操作类,它同时实现了List和Queue接口。n LinkedList中的存放元素按照先进先出方式排序,LinkedList除实现上表 中的方法外,还提供如下方法 :1.2 List接口的定义import java.util.*;public class LinkedListDemo
5、 public static void main(String args) LinkedList linkedList = new LinkedList();linkedList.add(a);/向链表添加数据linkedList.add(b);linkedList.add(c);linkedList.addFirst(m);/在链表表头增加数据linkedList.addLast(n);/在链表表尾增加数据System.out.println(linkedList);/输出链表内容LinkedList子类实现了List接口1.2 List接口的定义ArrayListVector当元素存储达到
6、指定容量时,自动增长为原容量的二分之一当元素存储达到指定容量时,原容量自动增长一倍非线程安全且性能更高线程安全但性能较低Vector类能够实现可增长的对象数组;其大小可以根据需要增大或缩小实例化Vector: List list = new Vector()/list接口指向实现类的实例n ArrayList和Vector的比较n 常用方法Vector1.3 Set接口Collection接口Set接口存储顺序无序不可以保存重复元素实现nSet接口的定义及常用子类1.3 Set接口的定义常用子类n Set接口常用子类:HashSetimport java.util.*;public class
7、 SetDemo public static void main(String args)Set set = new HashSet();set.add(apple);/添加元素set.add(orange);/添加元素set.add(pear);set.add(pear);/重复元素不能加入set.add(banana); System.out.println(set);返回类型方法描述booleanhashNext()如果有元素可迭代Objectnext()返回迭代的下一个元素n HashSet类中没有提供根据集合索引获取索引对应的值的方法,因此遍历HashSet时需要使用Iterator
8、迭代器n Iterator是对集合进行迭代的迭代器,通过迭代器可以对集合进行遍 历。Iterator的主要方法如下:1.3 Set接口的定义常用子类public static void main(String args) Set set = new HashSet(); set.add(apple); set.add(orange); set.add(pear); set.add(pear);/重复元素不能加入 set.add(banana); Iterator iterator = set.iterator(); while(iterator.hasNext() System.out.pri
9、ntln(iterator.next(); 返回对set 中的元素进行迭代的迭代器 返回迭代器的下一个元素 判断迭代器中是否有元素可迭代 1.3 Set接口的定义常用子类1.4 Map接口Map接口以键值对形式存储数据不允许出现重复键元素存储顺序无序n Map接口定义1.4 Map接口定义返回类型方法描述Objectget(Object key)根据key取得valueObjectput(Obejct k,Object v)向集合中加入元素voidclear()清除Map集合booleanisEmpty()判断集合是否为空booleancontainsKey(Object object)判断指
10、定的key是否存在booleancontainsValue(Object value)判断指定的value是否存在SetkeySet()Map中所有的key的集合Objectremove(Object key)根据key删除对应的valueCollectionvalues()取出全部的valueintsize()获得集合的长度nMap接口常用方法如下所示1.4 Map接口的子类n Map接口的常用子类有:HashMap和Hashtable Map map = new HashMap(); map.put(bookName,java oop); map.put(author, john); ma
11、p.put(price, 50);/自动装箱 map.put(price, 80);/出现重复的键:price map.put(null,nothing);/空键 Collection col = map.values();/取出Map中全部的value Iterator iterator = col.iterator(); while(iterator.hasNext() System.out.println(iterator.next(); HashMap允许出现空键1.4 Map接口的子类nHashMap不允许出现重复键,但允许出现空键和空值 Map map = new Hashtabl
12、e(); map.put(“1”, null);/空值 map.put(null, java oop);/空键 Collection col = map.values(); Iterator iterator = col.iterator(); while (iterator.hasNext() System.out.println(iterator.next(); Hashtable不允许出现空键和空值1.5 泛型 public static void main(String args) List list = new ArrayList();list.add(java oop);list.
13、add(3);list.add(new Student();list.add(new Book();for(int i=0;ilist.size();i+)/list.get(i)list.get(i)该强制转换成哪种类型?Java中的泛型,是指向list中添加统一类型的数据时,不会出现类型转换无法确定的问题。1.5 泛型概述n泛型在建立对象时不指定类中属性的具体类型,而是在声明及实例化对象时由外部指定。泛型可以提高数据安全性1.5 泛型应用泛型定义泛型类定义泛型对象定义n 泛型的主要原理是声明类时通过标识表示类中某个属性的类型,或某方法的返回值及参数类型。此时声明和实例化类时只要指定需要的类
14、型即可 n 泛型定义包括泛型类定义和泛型对象定义,其中泛型对象 定义的应用最为普遍 1.5 泛型应用n 泛型对象定义 类名称 对象名称 = new 类名称();List list = new ArrayList();Student stu1 = new Student();stu1.setStuName(tom);stu1.setAge(20);Student stu2 = new Student();stu2.setStuName(john);stu2.setAge(19);list.add(stu1);list.add(stu2);/list.add(java oop);/不允许将Stri
15、ng类型元素添加至集合中for(int i=0;ilist.size();i+) System.out.print(姓名:+list.get(i).getStuName()+ ); System.out.println(年龄:+list.get(i).getAge(); 统一集合List中元素的数据类型是Student类型 实践练习实践时间:20分钟 训练内容l 使用HashMap 需求说明l 定义一个字符串,统计字符串中每个字符的个数。如“a,d,b,d,a”l 结果为实现思路l使用Scanner接收键盘输入的字符串l使用HashMap统计每个字符的个数,其中key保存字符,value用来记录字符的数量实践练习需求说明l使用对象集合完成如下功能l1.员工信息的查看l2.删除员工实践时间:30分钟实现思路l创建一个员工对象l包含员工编号,员工姓名,员工性别,员工年龄 属性l创建一个 员工对象的集合l初始化3条员工记录(并使用在控制台循环打印,显示员工信息)l在员工集合中删除一条员工记录l使用集合中提供的方法删除员工本章总结Java中的集合框架包括Collection和Map两大基本接口;其中List、Set继承Collection接口 A
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医疗器械行业中的品牌建设与市场定位
- 医疗器械技术进步对商业发展的影响
- 医疗行业中的科技力量-探讨移支动技术在健康教育中的应用
- 利用区块链进行精确控制优化医疗资源供应链管理的路径研究
- 2025年生产部工作年度总结模版
- 医疗健康产业中的大数据与人工智能
- 医疗大数据分析在疾病预防中的价值
- 企业食堂供货合同范例
- 以环保为目标创新型医院的设计与实施
- 供销合同范例6
- 各种变频器的使用说明书.lg-ig53parameter list
- GB/T 31439.2-2015波形梁钢护栏第2部分:三波形梁钢护栏
- GB/T 19582.2-2008基于Modbus协议的工业自动化网络规范第2部分:Modbus协议在串行链路上的实现指南
- GA/T 1799-2021保安安全检查通用规范
- 细胞的能量“货币”ATP说课课件-高一上学期生物人教版必修1
- 解剖学课件神经系统课件
- 《基于绘本阅读的幼儿语言能力发展研究(论文)》9300字
- 印巴战争(修改稿)
- 工程项目管理实施方案(5篇)
- 2021年全国质量奖现场汇报材料-基础设施、设备及设施管理过程课件
- 防爆电气失爆判别标准和常见失爆现象汇总
评论
0/150
提交评论