一:Map.Entry和entrySet()。
1.Entry不仅是一个接口,而且还是一个内部接口,是Map的内部接口。(关系类似于类和其内部类)
如下图的结构图所示,Entry只是Map中的一个接口,Entry下的接口方法有getKey等等。
2.Set<Map.Entry<K, V>> entrySet();
分析:这个函数是Map内的函数,但不属于Entry内部接口,从他的返回值类型Set<Map.Entry<K,V>来看entryEntry函数返回的是一个集合,集合中的元素类型就是Entry。Map设计这个函数就是为了让对象通过这个函数使用Entry内部接口。
示例程序:
//对象先利用entryEntry函数得到一个元素是Map.Entry<String,String>类型的集合
Set<Map.Entry<String,String>>entrySet=map.entrySet();
//1.增强for循环遍历法
for(Map.Entry<String,String>m:entrySet){
System.out.println(m.getKey());
System.out.println(m.getValue());
}
//2.迭代器遍历法
Iterator<Map.Entry<String,String>>iterator=map.iterator();
while(iterator.hasNext()){
Map.Entry<String,String> entry=iterator.next();
Object key = entry.getKey( );
Object value = entry.getValue();
}
二:keySet()和values()
函数原型: Set<K> keySet(); Collection<V> values();这两个函数得到的都是一个集合,因此可以用集合迭代器或者增强for循环的方法。
Set<String>set=map.keySet();
//1.增强for循环
for(String s:set){
Object value=map.get(s);
}
//2.迭代器遍历方法
Iterator<String>iterator=set.iterator();
while(iterator.hasNext()){
String s=iterator.next();
Object value=map.get(s);
}