黑马程序员——java小结_014.001_map+泛型输出

时间:2023-02-18 08:11:06

------- 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培训、期待与您交流! ----------