为了方便处理集合中的元素,Java中出现了一个对象,该对象提供了一些方法专门处理集合中的元素.例如删除和获取集合中的元素.
可以对collection 接口实现的类进行迭代的类 ,称为迭代器。 collection 接口继承Iterator接口.
代码实现
package y.i.d;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
public class TestIterator {
public static void main(String[] args){
//test1();
//test2();
//test3();
test4();
}
public static void test1() { // test Iterator 1
List<String> s1 = new ArrayList<>();
s1.add("aaa");
s1.add("bbb");
s1.add("ccc");
// 首先 要调用对象的.iterator()方法, 然后判断是否继续循环条件为是否有next。
for(Iterator<String> listIterator=s1.iterator(); listIterator.hasNext();) {
// 通过迭代器的next() 实际得到某个元素
String temp = listIterator.next();
System.out.println(temp);
}
}
// set 的迭代器和list 一样用法
public static void test2() { // test Iterator 1
Set<String> s1 = new HashSet<>();
s1.add("111");
s1.add("222");
s1.add("333");
// 首先 要调用对象的.iterator()方法, 然后判断是否继续循环条件为是否有next。
for(Iterator<String> setIterator=s1.iterator(); setIterator.hasNext();) {
// 通过迭代器的next() 实际得到某个元素
String temp = setIterator.next();
System.out.println(temp);
}
}
// map的方法1 ,利用 entry接口
public static void test3() { // test Iterator 1
Map<Integer,String> s1=new HashMap<>();
s1.put(1001,"aaa");
s1.put(1002,"bbb");
s1.put(1003,"ccc");
// 首先通过entryset方法得到一个set集合,再去遍历这个集合即可
Set<Entry<Integer,String>> ss= s1.entrySet();
//
for(Iterator<Entry<Integer,String>> setIterator=ss.iterator(); setIterator.hasNext();) {
// 通过迭代器的next() 实际得到某个元素
Entry<Integer,String> temp = setIterator.next();
System.out.println("key:"+temp.getKey()+",value:"+temp.getValue());
}
}
//map的方法 利用key值
public static void test4() { // test Iterator 1
Map<Integer,String> s1=new HashMap<>();
s1.put(1001,"aaa");
s1.put(1002,"bbb");
s1.put(1003,"ccc");
// 首先
Set<Integer> ss= s1.keySet();
//
for(Iterator<Integer> setIterator=ss.iterator(); setIterator.hasNext();) {
// 通过迭代器的next() 实际得到某个元素
Integer key = setIterator.next();
System.out.println("key:"+key+",value:"+s1.get(key));
}
}
}