import java.util.*;
class MapDemo2
{
public static void main(String[] args)
{
HashMap<String,String> map=new HashMap<String,String>();
map.put("o2","zhangshan02");
map.put("o3","zhangshan04");
map.put("o1","zhangshan01");
map.put("o4","zhangshan04");
Set<Map.Entry <String,String>> entrySet=map.entrySet();
for(Iterator<Map.Entry <String,String>> it =entrySet.iterator();it.hasNext();)
{
Map.Entry <String,String> me =it.next();
String key =me.getKey();
String value =me.getValue();
System.out.println(key+":"+value);
}
}
}
这段代码提出来独立运行一点儿问题都没有,编译运行都能通过。但是在下面这一段代码中死活编译不能通过,很奇怪!下面这行代码也就多了注释,其它的一个字都没有改动。
/*
Map集合的两种取出方式:
1 Set<K> keySet:将map中所有的键存入到Set集合。
因为Set集合具备迭代器,所以可以迭代方式取出所有的键,再根据get方法,获取每一个键对应的值
2 Set<Map.Entry<K,V>> entrySet:将Map集合中的映射关系存入到了Set集合中,而这个关系的数据类型就是:Map.Entry
*/
import java.util.*;
class MapDemo2
{
public static void main(String[] args)
{
HashMap<String,String> map=new HashMap<String,String>();
map.put("o2","zhangshan02");
map.put("o3","zhangshan04");
map.put("o1","zhangshan01");
map.put("o4","zhangshan04");
//Map集合取出方式2:将Map集合中的映射关系取出,存入到Set集合中。
Set<Map.Entry <String,String>> entrySet=map.entrySet();
/*
entrySet方法的返回值是Set集合,Set集合存入的类型是Map.Entry<K,V>,
K,V分别指键类型和值类型。本例中key的类型和value的类型同为String
Map.Entry<K,V> 是一个接口,存入类型必须是<K,V>
*/
for(Iterator<Map.Entry <String,String>> it =entrySet.iterator();it.hasNext();)
{
Map.Entry <String,String> me =it.next(); //Map.Entry是一个接口,详见API文档
String key =me.getKey(); //调用Map.Entry接口的方法
String value =me.getValue();
System.out.println(key+":"+value);
}
/*
Map集合取出方式1:
//先获取Map集合的所有键的Set集合,keySet();
Set<String> keySet =map.keySet();
//有了Set集合就可以获取其迭代器
for(Iterator<String> it =keySet.iterator();it.hasNext();)
{
String key =it.next();
//有了键可以通过Map集合的get方法获取其对应的值。
String value =map.get(key);
System.out.println("key:"+key+",value:"+value);
}
*/
}
}
/*
Map.Entry 其实Entry也是一个接口,它是Map接口中的一个内部接口。
*/
/*
interface Map
{
public static interface Entry
{
public abstract Object getKey();
public abstract Object getValue();
}
}
*/
相同的代码,只是多了注释,编译时就提示 Map.Entry不带有参数。我在想是不是虚拟机把Map.Entry后面跟的泛型当成参数了?
|
-
未命名.jpg
(62.74 KB, 下载次数: 41)
Map.Entry不带有参数
|