Java之迭代器的使用
- 摘要
- 基础知识
- List迭代器
- Map迭代器
摘要
本博客主要讲解容器的迭代器的使用,包括List、Set和Map等容器
基础知识
这是类的继承关系图
迭代器的原理(一开始迭代器并不指向任何有效元素):
List迭代器
public class TestIterator {
public static void main(String[] args) {
testIteratorList();
}
public static void testIteratorList(){
List<String> list = new ArrayList<>();
list.add("aa");
list.add("bb");
list.add("cc");
//底下就是迭代器遍历打印list中的元素
for( Iterator<String> iter = list.iterator(); iter.hasNext();){
String temp = iter.next();
System.out.println(temp);
}
}
}
Map迭代器
public class TestIterator {
public static void main(String[] args) {
testIteratorMap();
}
public static void testIteratorMap(){
Map<Integer, String> map1 = new TreeMap<>();
map1.put(100,"aa");
map1.put(200, "bb");
//Map每个元素都是一个节点,节点的类型为Map.Entry<Integer, String>,这里把map1转换为集合
Set<Map.Entry<Integer, String>> set = map1.entrySet();
//处理集合的方法
for( Iterator<Map.Entry<Integer, String>> iter = set.iterator(); iter.hasNext();){
Map.Entry<Integer, String> temp = iter.next();
//获取节点的key和value
System.out.println(temp.getKey() + ":" + temp.getValue());
}
}
}
其他的方法:
public class TestIterator {
public static void main(String[] args) {
testIteratorMap();
}
public static void testIteratorMap(){
Map<Integer, String> map1 = new TreeMap<>();
map1.put(100,"aa");
map1.put(200, "bb");
//把map1的键全部取出来
Set<Integer> set = map1.keySet();
for( Iterator<Integer> iter = set.iterator(); iter.hasNext();){
Integer temp = iter.next();
System.out.println(map1.get(temp));
}
}
}
参考:迭代器