总结思路:只要碰到了集合输出的操作,就一定使用Iterator接口,因为这是最标准的做法。
注意:输出key和value存放的集合接口不一样:
key 是Set集合
value 是Collection集合
package zz.mapdemo;
import java.util.Map;
import java.util.HashMap;
import java.util.Set;
import java.util.Iterator;
// Map输出全部的key
public class IteratorDemo01{
public static void main(String []args){
Map<String, String> map = null; // 声明Map对象,并指定泛型类型
map = new HashMap<String, String>(); //
map.put("新浪网址:", "www.sina.com"); // 增加内容
map.put("百度网址:", "www.baidu.com");
map.put("csdn网址:", "www.csdn.com");
Set<String> keys = map.keySet(); // 得到全部的key变成Set集合
Iterator<String> iter = keys.iterator(); // 实例化Iterator对象
while (iter.hasNext()){
String str = iter.next(); // 取出key
System.out.println(str); // 输出key
}
}
}
新浪网址:
csdn网址:
百度网址:
package zz.mapdemo;
import java.util.Map;
import java.util.HashMap;
//import java.util.Set;
import java.util.Iterator;
import java.util.Collection; //values()方法返回类型是Collection
// Map输出全部的value
public class IteratorDemo02{
public static void main(String []args){
Map<String, String> map = null; // 声明Map对象,并指定泛型类型
map = new HashMap<String, String>(); //
map.put("新浪网址:", "www.sina.com"); // 增加内容
map.put("百度网址:", "www.baidu.com");
map.put("csdn网址:", "www.csdn.com");
Collection<String> values = map.values(); // 得到全部的value变为Collection集合
Iterator<String> iter = values.iterator(); // 实例化Iterator对象
while (iter.hasNext()){
String str = iter.next();
System.out.println(str); // 输出value
}
}
}
www.sina.com
www.csdn.com
www.baidu.com
注意:不能直接使用迭代输出Map中的全部内容
(1)、将Map接口的实例通过entrySet()方法变为Set接口对象
(2)、通过Set接口实例化为Iterator对象
(3)、通过Iterator迭代输出,每个内容都是Map.Entry的对象
(4)、通过Map.Entry进行key -> value的分离
package zz.mapdemo;
import java.util.Map;
import java.util.HashMap;
import java.util.Set;
import java.util.Iterator;
// Map输出最标准的操作流程
public class IteratorDemo04{
public static void main(String []args){
Map<String, String> map = null; // 声明Map对象,并指定泛型类型
map = new HashMap<String, String>(); //
map.put("新浪网址:", "www.sina.com"); // 增加内容
map.put("百度网址:", "www.baidu.com");
map.put("csdn网址:", "www.csdn.com");
// 输出方式一:Iterator输出
Set<Map.Entry<String, String>> allSet = null;
allSet = map.entrySet(); // 将Map接口实例变为Set接口实例
Iterator<Map.Entry<String, String>> iter = null;
iter = allSet.iterator(); // 实例化Iterator对象
while (iter.hasNext()){
Map.Entry<String, String> me = iter.next(); // 找到Map.Entry的每对数据的实例
System.out.println(me.getKey() + "-->" + me.getValue()); // 输出key 和 value
}
// 输出方式二:foreach输出
/*
for (Map.Entry<String, String> me : map.entrySet()){
System.out.println(me.getKey() + "-->" + me.getValue()); // 输出key 和 value
}
*/
}
}
新浪网址:-->www.sina.com
csdn网址:-->www.csdn.com
百度网址:-->www.baidu.com