map 常用方法
2024-10-19 12:37:45
map遍历:
Map map = new HashMap();
Iterator it = map.entrySet().iterator();
while(it.hasNext()) {
Map.Entry entry = (Map.Entry) it.next();
Object key = entry.getKey();
Object value = entry.getValue();
}
注意:for-each循环在java 5中被引入所以该方法只能应用于java 5或更高的版本中。
如果你遍历的是一个空的map对象,for-each循环将抛出NullPointerException,因此在遍历前你总是应该检查空引用。
Map<Integer, Integer> map =
new
HashMap<Integer, Integer>();
for
(Map.Entry<Integer, Integer> entry : map.entrySet()) {
System.out.println(
"Key = "
+ entry.getKey() +
", Value = "
+ entry.getValue());
}
下面的方法比entrySet遍历在性能上稍好(快了10%),而且代码更加干净。
Map<Integer, Integer> map =
new
HashMap<Integer, Integer>();
//遍历map中的键
for
(Integer key : map.keySet()) {
System.out.println(
"Key = "
+ key);
}
//遍历map中的值
for
(Integer value : map.values()) {
System.out.println(
"Value = "
+ value);
}
方法三使用Iterator遍历
用泛型:
Map<Integer, Integer> map =
new
HashMap<Integer, Integer>();
Iterator<Map.Entry<Integer, Integer>> entries = map.entrySet().iterator();
while
(entries.hasNext()) {
Map.Entry<Integer, Integer> entry = entries.next();
System.out.println(
"Key = "
+ entry.getKey() +
", Value = "
+ entry.getValue());
}
不要泛型:
Map map =
new
HashMap();
Iterator entries = map.entrySet().iterator();
while
(entries.hasNext()) {
Map.Entry entry = (Map.Entry) entries.next();
Integer key = (Integer)entry.getKey();
Integer value = (Integer)entry.getValue();
System.out.println(
"Key = "
+ key +
", Value = "
+ value);
}
该种方式看起来冗余却有其优点所在。首先,在老版本 java中这是惟一遍历map的方式。另一个好处是,你可以在遍历时调用iterator.remove()来删除entries,另两个方法则不能。根 据javadoc的说明,如果在for-each遍历中尝试使用此方法,结果是不可预测的。
JDK1.5中,应用新特性For-Each循环
Map m = new HashMap();
for(Object o : map.keySet()){
map.get(o);
}
最新文章
- 再次推荐一款逼真的HTML5下雪效果
- socket编程知识
- ubuntu安装 laravel 过程中出现: mcrypt php extension required 的问题 | 以及composer相关问题 | Nginx安装
- MinGW GCC下sleep()函数问题
- C# Form窗体子窗口关闭时刷新父窗体中的datagridview
- ios objection
- AlarmManager与PendingIntent
- java单例模式(线程安全,效率高,双重推断)
- 达到工业使用质量级别的类似于QQ截屏的软件
- Linaro系统获取root权限方法
- pycharm安装,svn使用,远程开发调试,接口测试,连接服务器
- [SDOI2009]HH的项链
- SignalR第一节-在5分钟内完成通信连接和消息发送
- Linux:Gentoo系统的安装笔记(四)
- Fiddler模拟低速网络
- CDQ分治总结(CDQ,树状数组,归并排序)
- R语言-查看加载包、卸除加载包及安装包与卸载包
- Python 爬虫入门(三)—— 寻找合适的爬取策略
- android EditText设置光标、边框和图标,以及限制输入
- 前台界面(1)---HTML基本定义及常见标签