我是靠谱客的博主 还单身八宝粥,最近开发中收集的这篇文章主要介绍java中的Iterator接口和Iterable接口java中的Iterator接口和Iterable接口,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
java中的Iterator接口和Iterable接口
一、Iterator接口
Iterator
接口是用来迭代java中的对象。它在java.util
包下面。
Iterator
接口里面必须实现的两个方法是:
boolean hasNext();
E next();
例如:
Iterator
实现类:
package com.iterator;
import java.util.Iterator;
public class IteratorTest implements Iterator<Object> {
Object[] obj;
int i;//计数
// 构造方法用来接收Object类型或者其子类的数组
IteratorTest(Object[] obj) {
this.obj = obj;
}
//重写hasNext()方法
@Override
public boolean hasNext() {
return i < obj.length;//返回一个Boolean值,判断时候还有元素
}
//重写next()方法
@Override
public Object next() {
return obj[i++];//将数组一个个返回回去
}
}
测试类:
package com.iterator;
import java.util.Iterator;
public class Test {
public static void main(String[] args) {
Integer[] arr = {1,2,3,4,5,6};
Iterator it = new IteratorTest(arr);
while(it.hasNext()){
System.out.print(it.next()+" ");
}
}
}
也可以用for
循环来迭代:
package com.iterator;
import java.util.Iterator;
public class Test {
public static void main(String[] args) {
Integer[] arr = {1,2,3,4,5,6};
for( Iterator i = new IteratorTest(arr) ; i.hasNext();){
System.out.println(i.next());
}
}
}
二、Iterable接口
Iterable
接口是返回一个在一组 T 类型的元素上进行迭代的迭代器它在java.lang
包底下,它支持foreach循环。
源码:
Iterator<T> iterator();
就是要返回一个实现Iterator
接口的迭代器。
例如:
package com.iterator;
import java.util.Iterator;
public class IterableTest implements Iterable<Object>{
// private IteratorTest iteratorTest;
Object[] object;
IterableTest (Object[] object){
this.object = object;
}
int i ;
@Override
public Iterator iterator() {
//匿名内部类
return new Iterator(){
public boolean hasNext(){
return i<object.length;
}
public Object next(){
return object[i++];
}
};
}
}
测试类:
package com.iterator;
public class Test {
public static void main(String[] args) {
Integer[] arr = {1,2,3,4,5,6};
IterableTest it = new IterableTest(arr);
for(Object i :it){
System.out.println(i);
}
}
}
注意:集合中Collection继承了Iterable接口,Iterable接口中的Iterator()方法返回了一个iterator对象,Iterable接口表示实现了该接口的类有iterator迭代的能力
package com.iterator;
import java.util.ArrayList;
import java.util.List;
public class Test {
public static void main(String[] args) {
List list = new ArrayList();
list.add("1");
list.add("2");
list.add("3");
list.add("4");
//此处Object是多态的写法
for(Object i : list){
System.out.println(i);
}
//可以利用泛型确定类型
/* List<String> list = new ArrayList();
list.add("1");
list.add("2");
list.add("3");
list.add("4");
//这里就可以直接用String了
for(String i : list){
System.out.println(i);
}*/
}
}
最后
以上就是还单身八宝粥为你收集整理的java中的Iterator接口和Iterable接口java中的Iterator接口和Iterable接口的全部内容,希望文章能够帮你解决java中的Iterator接口和Iterable接口java中的Iterator接口和Iterable接口所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复