迭代器、增强for、泛型

来源:互联网 发布:zimg php 编辑:程序博客网 时间:2024/05/24 05:29
对象数组
数组容器:基本类型int[]引用类型String[]

存储引用类的数组,对象数组
定义数组,存储Student对象
数组存储的元素,是Student对象
数组的弊端定长

集合中的根接口java.util.collection
定义了集合中所有的共性方法
collection接口的方法抽象方法,实现类ArrayList

方法来自子类的重写

常用方法

toArray()转换成数组 object
remove("")删掉第一个遇到元素 有就是true
contains("")查找是否有这个元素
clear()清空集合对象


迭代器(所有集合取出的通用方式)  :
集合容器有很多种,每个集合的存储数据的方法不同
让所有的集合的取出方式,变成一致的

集合容器遍历,先判断是否有可以被获取的元素,取出元素
继续在判断,是不是还有可以被取出的元素,工作方式的专业名字迭代


迭代器接口 java.util.Iterator接口
接口的抽象方法
boolean hasNext()判断是否还有下一个可以迭代的元素
Next()取出下一个元素


实现类:
collection接口定义方法
     Iteration iteration()返回是Iteration接口实现类


集合Arraylist,实现接口collection,重写方法iterator()


集合学习要点
存储元素 add
遍历元素 迭代器
集合容器自身特点


ConcurrentModificationExce 并发修改异常
异常发生原因:
在迭代器遍历过程中,使用了集合的方法,修改了集合的长度
被禁止的:不能这样,迭代器中禁止使用集合方法修改长度


java.lang.Iterable
是接口的孩子,都可以使用增强的for循环,包含数组
语法格式
for(数据类型 变量:集合或者数组){

}
好处:代码量减少,适合遍历
弊端:不能操作里面的内容
JDK1.5 新特性:泛型
软件更新升级:
修改bug
添加功能
改善体验
安全性
性能
减少代码书写


泛型:程序中安全机制
保证安全,集合存储指定的数据类型
泛型的出现,避免了类型之间的强制转换
减少了代码量
Array<E>E(element)表示什么
E简单的说是一种变量(定义类型的变量)

自定义的泛型类
静态方法泛型,不能喝类上的相同

定义实现类,实现接口,泛型不动

泛型通配符
? 通配所有的数据类型
? extends E可以传递E类型,E的子类,上限限定
? super E 可以传递E类型,E的父类 下限限定
原创粉丝点击