一、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);

}

}

}

最新文章

  1. Bullet核心类介绍(Bullet 2.82 HelloWorld程序及其详解,附程序代码)
  2. Spring scope
  3. 关于jQuery里面的选择器
  4. loadView、viewDidLoad、initWithCoder、initWithNibName、awakeFromNib的用法
  5. [51单片机] EEPROM 24c02 [读取存储多字节]
  6. 新版mysql(mysql-5.7.12-winx64)安装
  7. 2-sat 输出任意一组可行解&amp;拓扑排序+缩点 poj3683
  8. SELECT时为何要加WITH(NOLOCK)
  9. Eclipse基本设置
  10. 10个利用Eclipse调试Java的常见技巧
  11. HTTP性能测试
  12. StackExchange.Redis 使用-配置 (四)
  13. php error _report
  14. CodeForces 621C Wet Shark and Flowers
  15. docker 安装LAMP环境
  16. Percona XtraDB Cluster
  17. Win环境 Android Studio使用Git 教程 ( 生成SSH key )
  18. 洛谷 P2336 [SCOI2012]喵星球上的点名 解题报告
  19. libcurl开源库在Win32程序中使用下载文件显示进度条实例
  20. 【linux】linux常用命令汇总

热门文章

  1. LeetCode &amp; Q27-Remove Element-Easy
  2. vmware 12 安装 mac os 10.12正式版
  3. MySQL“Another MySQL daemon already running with the same unix socket” 报错信息处理
  4. WPF treeview扩展
  5. HttpClient 上传多个文件
  6. iot会议纪要 20180105
  7. Linux入门:增加用户,并赋予权限
  8. hadoop2.7.3+spark2.1.0+scala2.12.1环境搭建(1)安装jdk
  9. 记java应用linux服务单个CPU使用率100%分析
  10. JS中apply和call的应用和区别