




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、API-集合百川本章内容集合类概述l 为什么出现集合类?面象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,Java就提供了集合类。l 数组和集合类同是容器,有何不同?数组虽然也可以对象,但长度是固定的;集合长度是可变的。数组中可以基本数据类型,集合只能对象。l 集合类的特点集合只用于对象,集合长度是可变的,集合可以不同类型的对象。Collection接口概述l Collection接口概述Collection 层次结构中的根接口。Collection 表示一组对象,这些对象也称为 collection 的元素。一些collection 允许有重复的元素,而另一些则不允许。一些
2、 collection 是有序的,而另一些则是无序的。Collection接口成员方法add(E e)remove(Object o)lll void clear()contains(Object o)isEmpty()llsize()lCollection接口成员方法addAll(Collection c) removeAll(Collection c) containsAll(Collection c)retainAll(Collection c)llllCollection接口成员方法l Object toArray()把集合转成数组,可以实现集合的遍历l Iterator iterat
3、or()迭代器,集合的遍历方式Iterator接口概述l Iterator接口概述对 collection 进行迭代的迭代器依赖于集合而存在Iterator接口成员方法hasNext()ll E next()Iterator接口的使用和原理讲解l Iterator接口的使用讲解l Iterator接口的原理讲解为什么不定义成一个类,而是一个接口看源码是如何实现的Collection案例字符串并遍历自定义对象并遍历Student(name,age)llList接口概述l List接口概述有序的 collection(也称为序列)。此接口的用户可以对列表中每个元素的位置进行精确地控制。用户可以根据
4、元素的整数索引(在列表中的位置)元素,并搜索列表中的元素。与 set 不同,列表通常允许重复的元素。l List案例字符串并遍历自定义对象并遍历List接口成员方法l void add(l E remove(index,E element)index)l E get(l E set(index)index,E element)l ListIterator listIterator()ListIterator接口的成员方法hasPrevious()ll E previous()l ConcurrentModificationException现象原因解决方案常见数据结构l 栈l 队列 l 数组
5、l 链表 l 树l 哈希表ArrayList类概述及使用l ArrayList类概述底层数据结构是数组,查询快,增删慢线程不安全,效率高l ArrayList案例字符串并遍历自定义对象并遍历Vector类概述及使用l Vector类概述底层数据结构是数组,查询快,增删慢线程安全,效率低l Vector类特有功能public void addElement(E obj)public E elemen(index)public Enumeration elements()l Vector案例字符串并遍历自定义对象并遍历LinkedList类概述及使用l LinkedList类概述底层数据结构是链表
6、,查询慢,增删快线程不安全,效率高l LinkedList类特有功能public void add(E e)及addLast(E e)()及getLast()public E getpublic E remove()及public E removeLast()l LinkedList案例字符串并遍历自定义对象并遍历List集合练习l ArrayList去除集合中字符串的重复值(字符串的内容相同)去除集合中自定义对象的重复值(对象的成员变量值都相同)l LinkedList请用LinkedList模拟栈数据结构的集合,并测试List集合练l ArrayList去除集合中字符串的重复值(字符串的内
7、容相同)去除集合中自定义对象的重复值(对象的成员变量值都相同)l LinkedList请用LinkedList模拟栈数据结构的集合,并测试泛型概述及使用l JDK1.5以后出现的机制l 泛型出现的原因 l 泛型出现的好处 l 泛型的书写格式l 把前面的集合代码用泛型改进泛型由来l 为什么会有泛型呢?通过案例引入早期的Object类型可以接收任意的对象类型,但是在实际的使用中,会有类型转换的问题。也就存在这隐患,所以Java提供了泛型来解决这个安全问题。泛型应用l 泛型类把泛型定义在类上格式:public class 类名注意:泛型类型必须是l 泛型方法把泛型定义在方法上格式:public 返回
8、类型 方法名(泛型类型 .)l 泛型接口把泛型定义在接口上类型格接式口:p名ub泛型高级(通配符)l 泛型通配符任意类型,如果没有明确,那么就是Object以及任意的Java类了l ? extends E向下限定,E及其子类l ? super E向上限定,E及其父类增强for概述及使用l 增强for概述简化数组和Collection集合的遍历l 格式:for(元素数据类型 变量 : 数组或者Collection集合) 使用变量即可,该变量就是元素l 好处:简化遍历l 注意事项:增强for的目标要判断是否为nulll 把前面的集合代码的遍历用增强for改进静态导入概述及使用l 静态导入概述格式:
9、import sic 包名.类名.方法名;可以直接导入到方法的级别l 注意事项方法必须是静态的如果有多个同名的静态方法,容易不知道使用谁?这个时候要使用,必须加前缀。由此可见,意义不大,所以一般不用,但是要能看懂。可变参数概述及使用l 可变参数概述定义方法的时候不知道该定义多少个参数l 格式修饰符 返回值类型 方法名(数据类型注意:变量名)这里的变量其实是一个数组如果一个方法有可变参数,并且有多个参数,那么,可变参数肯定是最后一个l Arrays工具类中的一个方法public sic List asList(T. a)List集合练习2l 集合的嵌套遍历l 获取10个1-20之间的随机数,要求
10、不能重复l 键盘录入多个数据,以0结束,要求在控制台输出这多个数据中的最大值Set接口概述l Set接口概述一个不包含重复元素的 collection。l Set案例字符串并遍历自定义对象并遍历HashSet类概述l HashSet类概述不保证 set 的迭代顺序特别是它不保证该顺序恒久不变。l HashSet如何保证元素唯一性底层数据结构是哈希表(元素是链表的数组)哈希表依赖于哈希值添加功能底层依赖两个方法:hashCode()equals(Object obj)LinkedHashSet类概述l LinkedHashSet类概述元素有序唯一由链表保证元素有序由哈希表保证元素唯一TreeSe
11、t类概述l TreeSet类概述使用元素的自然顺序对元素进行排序或者根据创建 set 时提供的 Comparator 进行排序具体取决于使用的构造方法。l TreeSet是如何保证元素的排序和唯一性的底层数据结构是树)树(树是一种自平衡的二叉Set集合练习l HashSet集合自定义对象并遍历。如果对象的成员变量值相同即为同一个对象l TreeSet集合自定义对象并遍历如果对象的成员变量值相同即为同一个对象按照进行从大到小进行排序l 编写一个程序,获取10个1至20的随机数,要求随机数不能重复。l 键盘录入5个学生信息(,语文成绩,数学成绩,英语成绩),按照总分从高到低输出到控制台Collec
12、tion集合总结l CollectionListArrayListVectorLinkedListSetHashSetTreeSetMap接口概述l Map接口概述将键到值的对象一个不能包含重复的键每个键最多只能到一个值l Map接口和Collection接口的不同Map是双列的,Collection是单列的Map的键唯一,Collection的子体系Set是唯一的Map集合的数据结构值针对键有效,跟值无关 Collection集合的数据结构是针对元素有效Map接口成员方法l V put(K key,V value) l V remove(Object key) l void clear()c
13、ontainsKey(Object key)containsValue(Object value) isEmpty()lllsize()lMap接口成员方法l V get(Object key)l Set keySet()l Collection values()l SetMntry entrySet()Map集合遍历l 方式1:根据键找值获取所有键的集合遍历键的集合,获取到每一个键根据键找值l 方式2:根据键值对对象找键和值获取所有键值对对象的集合遍历键值对对象的集合,获取到每一个键值对对象根据键值对对象找键和值HashMap类概述l HashMap类概述键是哈希表结构,可以保证键的唯一性l
14、 HashMap案例HashMapHashMapHashMapHashMapLinkedHashMap类概述l Map 接口的哈希表和预知的迭代顺序。列表实现,具有可TreeMap类概述l TreeMap类概述键是树结构,可以保证键的排序和唯一性l TreeMap案例HashMapHashMapMap集合案例l aababcabcdabcde,获取字符串中每一个字母出现的次数要求结果:a(5)b(4)c(3)d(2)e(1)l 集合的嵌套遍历HashMap嵌套HashMapHashMap嵌套ArrayListArrayList嵌套HashMap面试题l HashMap和Hashtable的区别l List,Set,Map等接口是否都继承子Map接口Collections类概述和成员方法l Collections类概述针对集合操作 的工具类l Collections成员方法public sic void sort(List list)public s public s public s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- DB32/T 4322-2022家政职业经理人培训规范
- DB32/T 4199-2022医疗机构中肿瘤放射治疗部门设置规范
- DB32/T 4159-2021桃品种需冷量评价技术规程
- DB32/T 3957-2020化工企业安全生产信息化管理平台数据规范
- DB32/T 3761.4-2020新型冠状病毒肺炎疫情防控技术规范第4部分:工业企业
- DB32/T 3711-2020内河低压小容量船舶岸电连接系统技术规范
- DB32/T 3558-2019生活垃圾焚烧飞灰熔融处理技术规范
- DB31/T 858-2015钢渣粉混凝土砌块应用技术规程
- DB31/T 677-2021木制品制造业职业病危害预防控制规范
- DB31/T 668.1-2012节能技术改造及合同能源管理项目节能量审核与计算方法第1部分:总则
- 马拉松赛事策划方案
- 2.3第1.2课时物质的量课件高一上学期化学人教版
- 景观照明项目评估报告
- 电影你的名字课件
- (小学)语文教师书写《写字教学讲座》教育教研讲座教学培训课件
- 设备清洁安全保养培训课件
- 心理危机评估中的量表和工具
- plc课程设计模压机控制
- 中国大学生积极心理品质量表
- 2023充电桩停车场租赁合同 充电桩租地合同正规范本(通用版)
- JCT908-2013 人造石的标准
评论
0/150
提交评论