java ①类中实例是arraylist集合 ②迭代器的使用 谢谢
②迭代器的使用
谢谢分别给个代码案例吧。不用test和太完整。谢谢了。 展开
2017-05-16 · 做品质教育,用事实说话
迭代器是一种模式,它可以使得对于序列类型的数据结构的遍历行为与被遍历的对象分离,即我们无需关心该序列的底层结构是什么样子的。只要拿到这个对象,使用迭代器就可以遍历这个对象的内部.
1.Iterator
Java提供一个专门的迭代器<<interface>>Iterator,我们可以对某个序列实现该interface,来提供标准的Java迭代器。Iterator接口实现后的功能是“使用”一个迭代器.
文档定义:
Package java.util;
publicinterface Iterator<E> {
boolean hasNext();//判断是否存在下一个对象元素
E next();
void remove();
}
2.Iterable
Java中还提供了一个Iterable接口,Iterable接口实现后的功能是“返回”一个迭代器,我们常用的实现了该接口的子接口有: Collection<E>, Deque<E>, List<E>, Queue<E>, Set<E> 等.该接口的iterator()方法返回一个标准的Iterator实现。实现这个接口允许对象成为 Foreach 语句的目标。就可以通过Foreach语法遍历你的底层序列。
Iterable接口包含一个能够产生Iterator的iterator()方法,并且Iterable接口被foreach用来在序列中移动。因此如果创建了任何实现Iterable接口的类,都可以将它用于foreach语句中。
使用Iterator的简单例子
import java.util.*;
publicclass TestIterator {
public static void main(String[] args) {
List list=new ArrayList();
Map map=new HashMap();
for(int i=0;i<10;i++){
list.add(new String("list"+i) );
map.put(i, new String("map"+i));
}
Iterator iterList= list.iterator();//List接口实现了Iterable接口
//遍历ArrayList
while(iterList.hasNext()){
String strList=(String)iterList.next();
System.out.println(strList.toString());
}
Iterator iterMap=map.entrySet().iterator();
//遍历Map
while(iterMap.hasNext()){
Map.Entry strMap=(Map.Entry)iterMap.next();
System.out.println(strMap.getValue());
}
}
}
arraylist 继承自list接口
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
/**
* Created by hcq on 2017/5/16.
*/
public class ArrayListDemo {
public static void main(String[] args) {
List<Integer> list = new ArrayList<Integer>();
// 添加
list.add(1);
//删除
list.remove(0);
List<Integer> list1 = new ArrayList<Integer>();
for (int i = 0; i < 100; i++) {
list1.add(i);
}
list.addAll(list1);
//获取
System.out.println(list.get(list.size() - 10));
//迭代器遍历方法
Iterator<Integer> iterator = list.iterator();
while (iterator.hasNext()) {
Integer next = iterator.next();
System.out.println(next);
}
//for循环遍历方法
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
System.out.println(list.toString());
//清空
list.clear();
System.out.println(list.toString());
}
}
2017-05-16
List list = new ArrayList();
list.add("1");
list.add("2");
list.add("3");
list.add("4");
list.add("5");
Iterator iteraorList = list.iterator();
while(iteraorList.hasNext()){
String outputStr = (String) iteraorList.next();
System.out.println(outputStr);
}