黑马程序员技术交流社区
标题:
请问为什么下面的代码会倒着打印出来。
[打印本页]
作者:
刘江华
时间:
2011-10-2 15:17
标题:
请问为什么下面的代码会倒着打印出来。
还有就是,我写了这两种方式,会不会有性能上的损失呢?
import java.util.*;
public class MapGeneric {
/**
* @param args
*/
public static void main(String[] args) {
HashMap<String,Integer> map =new HashMap<String, Integer>();
map.put("zhansan", 20);
map.put("lisi",30);
map.put("wangwu",10);
Set<String> Kset =map.keySet();
Iterator ite =Kset.iterator();
while(ite.hasNext()){
String x=(String)ite.next();//倒着打印出来
System.out.println(x+": "+map.get(x));
}
//换种方式,
System.out.println("*****************************");
Set<Map.Entry<String, Integer>> entrySet = map.entrySet();
for(Map.Entry<String, Integer> entry: entrySet){
System.out.println(entry);//这里以K-V的形式打印。
}
}
}
作者:
匿名
时间:
2011-10-2 15:40
使用第一种方式之所以会倒着打印出来是因为你使用的是Hashmap集合存储数据的,该集合的特点是会按着自然顺序输出元素,例如按着字典顺序。
作者:
匿名
时间:
2011-10-2 15:46
标题:
回复 楼主 的帖子
Hashmap集合的特点是自然顺序储存数据。
Iterator ite =Kset.iterator();
while(ite.hasNext()){
String x=(String)ite.next();//倒着打印出来
System.out.println(x+": "+map.get(x));
}
把上面的一段代码换为下面的for语句比较节省内存空间。
换成for(Iterator ite =Kset.iterator(); ite.hasNext();)
{
String x=(String)ite.next();//
System.out.println(x+": "+map.get(x));
}
作者:
匿名
时间:
2011-10-2 23:43
用 LinkedHashMap
作者:
匿名
时间:
2011-10-3 11:15
谢谢各位了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2