java使用map接口来描述一种由键(key)值到(value)值的一对一映射关系。Map不允许键值重复。相当于数据库一个表有两个属性,键值为主码,可唯一确定表中元素。
HashMap(散列图)(map的实现类)
HashMap存储数据,其内存模式不是连续的,是通过hash算法排布存储Map中的键值,其方法get(key) 通过key键值获取value的时间复杂度为1。
map可实现的方法除了get(key) 之外还有:
map.entrySet()返回一个set;
map.put (key,value) 添加数据;
map.size() 显示元素个数;
map.remove(key); 根据key值删除元素;
map.putAll(map) 添加一个map到map
map.containsKey(key) 根据key检索map中是否存在,返回bool类型
map.containsValue(value) 根据value检索map中是否存在
map.clear() 清空map所有元素
对其进行遍历时,HashMap不能直接装入迭代器,必须将HashMap的所有键key装入迭代器,再进行遍历,或者是使用Entry类,将所有数据元素转化为Entry的集合进行处理
第一种遍历方式
通过entrySet获取map所有节点
第二种遍历方式
获取map中所有的key值
Set ketSet = map.key;
for(object o : keySet)
{ 输出 o+ map.get(o);} //可得到key和value值。
第三种遍历方式
map.values() //获取所有的value值
Collection values = map.values();
for(object o : value)
{ 输出 o } //根据value获取不到key值
贴上一个小知识:
BigDecimal
大数据类型,常见于财务计算,不容易产生精度丢失。
使用时 new BigDecimal(" ");