Map,HashMap,TreeMap
一、HashMap,TreeMap差别
1.两种常规Map性能
HashMap:适用于在Map中插入、删除和定位元素。
Treemap:适用于按自然顺序或自定义顺序遍历键(key)。
2.总结
HashMap通常比TreeMap快一点(树和哈希表的数据结构使然),建议多使用HashMap,在需要排序的Map时候才用TreeMap。
二、Map 遍历
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
public class TestMap {
public static void main(String[] args) {
Map<Integer, String> map = new HashMap<Integer, String>();
map.put("1", "Jack"); // 存储键和值
map.put("2", "Rose");
map.put("3", "Lucy");
System.out.println(map.size());
// 第一种:
System.out.println("第一种:通过Map.keySet遍历key和value:");
for (Integer in : map.keySet()) { //map.keySet()返回的是所有key的值
String str = map.get(in); //得到每个key多对用value的值
System.out.println(in + " " + str);
}
// 第二种:
System.out.println("第二种:通过Map.entrySet使用iterator遍历key和value:");
Iterator<Map.Entry<Integer, String>> it = map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<Integer, String> entry = it.next();
System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
}
// 第三种:推荐,尤其是容量大时,速度最快,效率最高
System.out.println("第三种:通过Map.entrySet遍历key和value");
for (Map.Entry<Integer, String> entry : map.entrySet()) {
System.out.println("key= " + entry.getKey() + " and value= "+ entry.getValue());
}
/* 另一种写法
Set entrySet = map.entrySet();
Iterator it = entrySet.iterator(); // 获取Iterator对象
while (it.hasNext()) {
Map.Entry entry = (Map.Entry) (it.next());// 获取集合中键值对映射关系
Object key = entry.getKey(); // 获取Entry中的键
Object value = entry.getValue(); // 获取Entry中的值
System.out.println(key + ":" + value);
}
*/
// 第四种:
System.out.println("第四种:通过Map.values()遍历所有的value,但不能遍历key");
for (String v : map.values()) {
System.out.println("value= " + v);
}
}
}
最新文章
- Bullet核心类介绍(Bullet 2.82 HelloWorld程序及其详解,附程序代码)
- Spring scope
- 关于jQuery里面的选择器
- loadView、viewDidLoad、initWithCoder、initWithNibName、awakeFromNib的用法
- [51单片机] EEPROM 24c02 [读取存储多字节]
- 新版mysql(mysql-5.7.12-winx64)安装
- 2-sat 输出任意一组可行解&;拓扑排序+缩点 poj3683
- SELECT时为何要加WITH(NOLOCK)
- Eclipse基本设置
- 10个利用Eclipse调试Java的常见技巧
- HTTP性能测试
- StackExchange.Redis 使用-配置 (四)
- php error _report
- CodeForces 621C Wet Shark and Flowers
- docker 安装LAMP环境
- Percona XtraDB Cluster
- Win环境 Android Studio使用Git 教程 ( 生成SSH key )
- 洛谷 P2336 [SCOI2012]喵星球上的点名 解题报告
- libcurl开源库在Win32程序中使用下载文件显示进度条实例
- 【linux】linux常用命令汇总
热门文章
- LeetCode &; Q27-Remove Element-Easy
- vmware 12 安装 mac os 10.12正式版
- MySQL“Another MySQL daemon already running with the same unix socket” 报错信息处理
- WPF treeview扩展
- HttpClient 上传多个文件
- iot会议纪要 20180105
- Linux入门:增加用户,并赋予权限
- hadoop2.7.3+spark2.1.0+scala2.12.1环境搭建(1)安装jdk
- 记java应用linux服务单个CPU使用率100%分析
- JS中apply和call的应用和区别