集合-迭代器(Iterator)
迭代器遍历
//1.转成数组 通过数组遍历(获取数组中的每一个元素)
Object arrs = c.toArray();
//2.迭代器遍历
Iterator it = c.iterator(); //放到Iterator会自动提升类型为OBject
//获取迭代器当中的内容
Object obj = it.next(); //把当前游标内容取出来,游标往后移一位。
System.out.printl(obj);
//当迭代器没有元素的时候取元素会报错。所以这里要添加一个判断条件。
//如果有返回true 否则 flase
boolean res = it.hasNext(); //这条语句要写在迭代器前面,不然迭代器取值去完了。再去判断也是报错。
//当数据多的时候用循环取元素。
//1.判断有没有元素
//2.如果有 取出元素。如果没有 返回flase
while(it.hasNext()){
System.out.println(it.next);
}
//注意:我们在调用迭代器的时候里面的元素会被自动提升为Object,当我们想要通过迭代器调用我们自己的东西,就需要转成自己的类型
//例如:
while(it2.hasNext()){
Cat cat = (Cat)it2.next();
cat.show();
}
迭代器的源码分析 (没看懂。后续在来复习)
Collection 总结
数组的弊端 :长度是固定,不能再去添加元素
集合:java提供一个集合类,他的长度是可以改变的,能存储任何的对象。长度是随着元素的增加而增加
集合与数组的区别:
1.数组能存基本数据类型和引用类型
2.集合当中只能存放引用数据类型,会把基本数据类型转成引用类型
3.数组长度是固定,不能再去增长
4.集合长度是可以改变。根据元素的增长而增加
什么时候使用数组:如果元素是固定,推荐使用数组
什么时候使用集合:对元素进行增、删、改、查使用集合
以一种面向对象的方式操作
学习集合 主要就是学习Collection接口 ,它的接口下还有List接口(存放的数据有序且重复存储)与Set接口(存放数据无序,不可重复存储),当要去实现某个程序时,拿接口下的实现类
实现类:List 下的实现类有 : ArrayList (数组实现)、LinkedList(链表实现)、Vector(数组实现)
实现类: Set下的实现类有 :HashSet(哈希算法)、TreeSet(二叉树算法)
这是我看的网易云课视频。老师整理好的图片资料非常全面
遍历集合
加油!