------- android培训、java培训、期待与您交流! ----------
map+泛型输出和map输出基本一样,也是本身并不能直接为Iterator实例化,使用Iterator输出Map集合中内容的话,同样有两种方法,和不加泛型一样但是有略微的区别:
方法一:
1.通过entrySet方法变成Set对象
Set<Entry<Integer,String>> s = m.entrySet();
2.调用Set的Iterator方法,此时每个Iterator对象是Map.Entry对象
Iterator<Entry<Integer,String>> it = s.iterator();
3.对Map.Entry分离出 key - value(这里不一样)
Entry<Integer,String> e = it.next();//用到了泛型,这里消除了强转!
方法二:
1.通过keySet得到Map集合多有key的Set集合
Set<Integer> set =m.keySet();
2.调用Set的Iterator方法,此时每个Iterator对象是key值
Iterator<Integer>iter = set.iterator();
3.通过Map的getValue(key)得到value值
<span style="font-size:18px;">//泛型加Map的输出!
import java.util.*;
public class Demo {
public static void main(String[] args) {
Map<Integer, String> m = new TreeMap<Integer,String>();
m.put(1, "校长");
m.put(2, "老师");
m.put(3, "学生");
System.out.println(m);
//第一种方式,用到了entrySet方法
Set<Entry<Integer, String>> s = m.entrySet();
Iterator<Entry<Integer, String>> it =s.iterator();
while(it.hasNext()){
Entry<Integer, String> e = it.next();//用到了泛型,这里消除了 强转!
System.out.println(e.getKey()+" "+e.getValue());
}
//第二种方法,用到了keySet方法
Set<Integer> set = m.keySet();
Iterator<Integer> iter = set.iterator();
while(iter.hasNext()){
Integer i = iter.next();//直接写到输出语句,出错!
System.out.println(i+" "+m.get(i));
}
}
}</span>
------- android培训、java培训、期待与您交流! ----------