HashMap笔记
来源:互联网 发布:linux shell脚本编写 编辑:程序博客网 时间:2024/06/03 13:57
今天在项目中看别人的代码使用treeMap(),不知道为什么使用treeMap而不使用hashMap,因此搜了一下treeMap和hashMap。
这篇文章写的很详细
在此处记录一下自己的理解,现在理解很浅显,以后理解深刻之后再来补充。
HashMap在插入值hashMap.input()时按HashCode插入,因此存储时不是按插入的顺序,读取时也是按照hashCode读取。例如下面的例子,读取时是 [3 2 1 6 5 4](可能在不同的电脑上不一样?)。但是因为通过hashCode索引,读的速度非常快,在对读出的数据的顺序没要求时可以使用HashMap。
TreeMap读出的是排好序的数据
public class TestHashMap { public static void main(String args[]) { Map<String, Object> hashMap = new HashMap<>(); hashMap.put("1","1"); hashMap.put("2","2"); hashMap.put("3","3"); hashMap.put("4","4"); hashMap.put("5","5"); hashMap.put("6","6"); Iterator<String> iterator = hashMap.keySet().iterator(); while(iterator.hasNext()) { Object key = iterator.next(); System.out.println("hashMap.get(key) is " + hashMap.get(key)); } }}
hashMap put通过key值的hash值来确定位置,treeMap根据key值的hash值来排序,linkedMap按照put的先后顺序确定位置。
http://howtodoinjava.com/core-java/collections/how-hashmap-works-in-java/
需要注意上面这段代码中如何遍历hashMap,由keySet()得到hashMap中key的Set view,通过iterator接口遍历key值,在hashMap中取得相应value值
============================
java7 hashMap API文档
http://docs.oracle.com/javase/7/docs/api/java/util/HashMap.html
tips:
hashMap.get(key) == null 可能是value ==null,可通过containsKey来区分这两中情况
一个HashMap的实例有两个参数:容量和负载因子,通常负载因子是0.75
- HashMap笔记
- HashMap笔记
- HashMap笔记
- [笔记]HashMap
- HashMap笔记
- HashMap 源码笔记
- Java学习笔记-HashMap
- HashMap关键原理笔记
- HashMap源码学习笔记
- HashMap源码阅读笔记
- HashMap源码分析笔记
- HashMap学习笔记
- 面试笔记----------HashMap排序
- HashMap学习笔记
- HashMap学习笔记
- HashMap学习笔记
- HashMap学习笔记
- HashMap源码学习笔记
- Service简介(一)
- MySQL(十)运算符
- linux之基础shell脚本编程4 字符串操作,变量赋值,配置用户环境
- VC----MFC对话框(2)
- shell脚本中一些特殊符号
- HashMap笔记
- 遍历HashSet
- spring配置静态文件
- Python的raw_input语句包含中文,在Windows环境CMD中显示乱码的解决方法
- UVa 10269 & ZOJ 1232 Adventure of Super Mario(最短路+DP)
- 树链剖分模板
- ACM学习历程9——string基本字符系列容器
- Linux之文件查找命令locate与find详解
- Scalaz(56)- scalaz-stream: fs2-安全运算,fs2 resource safety