4.12笔记(迭代器、泛型、比较器)

本文介绍了Java中的迭代器模式,强调其用于遍历集合对象而无需关注底层数据结构的特性。迭代器提供hasNext、next和remove方法,但创建后集合不可进行添加和删除操作。此外,文章还探讨了泛型的优势,如类型匹配和避免强制转换,并解释了泛型的本质和常用占位符。最后,文章提到了Comparable接口和Comparator比较器,强调自定义类型时应考虑比较器的使用。
摘要由CSDN通过智能技术生成

Iterator : 迭代器

  • 迭代器是一种模式,又称光标,他可以使对于序列类型的数据结构的遍历行为与被遍历的对象分离
  • 我们不需要关心该序列底层数据结构是什么样子的,只要拿到这个对象,使用迭代器就可以进行遍历这个集合对象
  • 生成迭代器
  • Iterator it = 集合对象.iterator();
  • 迭代器为了方便遍历,提供了三个方法
  • 1 boolean hasNext() : 判断光标的下一位是不是还有元素,有就是true,没有就是false
  • 2 E next() : 将迭代器光标向下移动一位,并取出该元素 Element
  • 3 remove() : 删除当前指向的元素
  • 迭代器一旦创建,集合不能进行添加和删除操作,如果 添加或删除了.必须重新生成迭代器
  • 增强for循环 forEach 就是为了让iterator循环访问的形式简单,写起来方便,但是也是不能进行添加和删除的
  • 使用普通的for和while是可以进行添加删除的,这种遍历还是和数据结构存储相关的

泛型

  • 泛型 是在编译阶段对数据的类型进行匹配
  • 优点 : 统一了数据类型,减少强制类型转换
  • 缺点 : 只能存储单一类型的数据
  • 结合我们的需求情况,绝大部分情况都是需要保存统一类型的数据,所以大部分情况下,使用泛型要好很多
  • 泛型 只能是引用类型,不能是基本类型
  • 泛型本质就是一个占位符,由调用处对这个占位符赋值
  • 如果不赋值,默认是Object
  • 常见的占位符 :
  • ? : 表示不确定的类型
  • T : 表示一个具体的java类型 Type
  • K : 表示key ,java中的键值对
  • V : 表示value,
  • E : 表示Element,元素,集合中的数据我们叫元素
  • 用什么字母都是可以的,一般都是大写,只是占位符而已
  • 泛型比Object 灵活,避免了一系列强制转换

比较器

Comparator 与 Comparable

  • 1 要添加的元素 实现 java.lang.Comparable接口 并实现compareTo方法
  • 2 写一个比较器类,实现java.util.Comparator比较器接口
  • 很多常用的类中都实现了Comparable接口 并实现compareTo方法
  • 比如 Integer , String , Date等
  • 所以我们自定义类型的时候,一定要弄比较器类
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值