ava:Map借口及其子类HashMap三
ava:Map借口及其子类HashMap三
HashMap常用子类(异步非安全线程,性能高; Hashtable:同步的安全线程,性能低)
map(HashMap)中的key,value可以通过 Set<E>,或者Conllection<E>来接收.
Map<String,Integer> allMap = new HashMap<String, Integer>();
allMap.put("zhangsan", 1);
allMap.put("zhangsan", 2);
allMap.put("lisi", 3);
allMap.put("tianqi", 4); //Integer value = allMap.get("zhangsan");
//System.out.println(value); Collection<Integer> keys = allMap.values();
Iterator<Integer> iter = keys.iterator();
while(iter.hasNext())
{
Integer str = iter.next();
System.out.println( str + "、" );
}
结果:
3、
2、
4、
注意事项:
Map不能直接使用Iterator类输出
在集合的标准操作中所有的集合内容最好使用Iterator进行输出,但在Map接口中并没有明确的定义出这样的操作。如果没有的话,则必须深入了解Map的机制。
在Map中虽然是以一对值得形式出现的,可是真正的保存的还是一个单独的对象,即:程序key->alue的存放在一个对象之中,之后将对象加入到集合里。
Map.Entry,Map实体,从定义格式上可以发现,此接口属于STATIC静态声明的接口。而且是一个内部接口。
对于Map和Map.Entry的关系,如下图:
MAP.Entry [ 一组对象数据]
Map.Entry [ 一组对象数据]
Map.Entry [一组对象数据]
....... <-------------------- 增加元素 Map.Entry[ key=>value 一组对象数据]
所以:下面就可以给出Map接口使用Iterator输出的标准操作:
1.通过Map接口中的:Set<Map.Entry<K, V>> entrySet()方法取得Set集合
2.通过Set接口,为Iterator进行初始化操作
3.通过Iterator取得每一个Map.Entry
4.通过Map.Entry将KEY与VALUE分离。
例子:
Map<String, Integer> allSet = new HashMap<String, Integer>();
allSet.put("zhangsan", 1);
allSet.put("zhangsan", 2);
allSet.put("lisi", 3);
allSet.put("wangwu", 4); Set<Map.Entry<String,Integer>> allList = allSet.entrySet();
Iterator<Map.Entry<String,Integer>> iter = allList.iterator();
while(iter.hasNext())
{
Map.Entry<String, Integer> map = iter.next();
System.out.println( map.getKey() + "-->" + map.getValue() ); }
Set<Map.Entry<String,Integer>> allList = allSet.entrySet();
Iterator<Map.Entry<String,Integer>> iter = allList.iterator();
while(iter.hasNext())
{
Map.Entry<String, Integer> map = iter.next();
System.out.println( map.getKey() + "-->" + map.getValue() ); }
结果:
lisi-->3
zhangsan-->2
wangwu-->4
或者Foreach循环:
Map<String, Integer> allSet = new HashMap<String, Integer>();
allSet.put("zhangsan", 1);
allSet.put("zhangsan", 2);
allSet.put("lisi", 3);
allSet.put("wangwu", 4); //或者
for(Map.Entry<String, Integer> map: allSet.entrySet())
{
System.out.println( map.getKey() + "-->" + map.getValue());
}
ava:Map借口及其子类HashMap三的更多相关文章
- java:Map借口及其子类HashMap五,identityHashMap子类
java:Map借口及其子类HashMap五,identityHashMap子类 了解:identityHashMap子类 一般情况下,标准的Map,是不会有重复的key值得value的,相同的key ...
- java:Map借口及其子类HashMap四
java:Map借口及其子类HashMap四 使用非系统对象作为key,使用匿名对象获取数据 在Map中可以使用匿名对象找到一个key对应的value. person: public class Ha ...
- java:Map借口及其子类HashMap二
java:Map借口及其子类HashMap二 重点:所有的集合必须依赖Iterator输出 Map<String, Integer> map = new HashMap<String ...
- java:Map借口及其子类
java:Map借口及其子类 Conllection是保存单值最大得父接口(即没有key的数据),那么Map是保存的内容是一对键值的数据,即KEY->VALUE的形式保存,如电话簿等. Map常 ...
- HashMap三百问
文章目录: 一.JDK1.7之HashMap 二.JDK1.8之HashMap 三.Hashtable JDK1.7之HashMap 1. 定义 HashMap实现了Map接口,继承AbstractM ...
- Map接口及其子类
Map接口操作的是一对对象,即二元偶对象,Map接口中的每一个元素都使用"key--value"的形式存储在集合中. SortedMap接口是排序接口,仅仅要是实现了此接口的子类, ...
- Java 数据类型:集合接口Map:HashTable;HashMap;IdentityHashMap;LinkedHashMap;Properties类读取配置文件;SortedMap接口和TreeMap实现类:【线程安全的ConcurrentHashMap】
Map集合java.util.Map Map用于保存具有映射关系的数据,因此Map集合里保存着两个值,一个是用于保存Map里的key,另外一组值用于保存Map里的value.key和value都可以是 ...
- Java中List,ArrayList、Vector,map,HashTable,HashMap区别用法
Java中List,ArrayList.Vector,map,HashTable,HashMap区别用法 标签: vectorhashmaplistjavaiteratorinteger ArrayL ...
- Java容器类List、ArrayList、Vector及map、HashTable、HashMap的区别与用法
Java容器类List.ArrayList.Vector及map.HashTable.HashMap的区别与用法 ArrayList 和Vector是采用数组方式存储数据,此数组元素数大于实际存储的数 ...
随机推荐
- android常用权限
访问登记属性 android.permission.ACCESS_CHECKIN_PROPERTIES ,读取或写入登记check-in数据库属性表的权限 获取错略位置 android.permiss ...
- 第三篇:Logstash 安装配置
Logstash 简介: Logstash 是一个实时数据收集引擎,可收集各类型数据并对其进行分析,过滤和归纳.按照自己条件分析过滤出符合数据导入到可视化界面.Logstash 建议使用java1.8 ...
- erlang 求N以内的质数
素数,又称质数,在一个大于1的自然数中,除了1和此整数自身之外,不能被其他自然数整除的数. 比1大但不是素数的数称为合数. 1和0既不是素数,也不是合数. 算术基本定理证明每个大于1的正整数都可以写成 ...
- CentOS VSCode调试go语言出现:exec: "gcc": executable file not found in PATH
CentOS VSCode调试go语言出现:exec: "gcc": executable file not found in PATH 解决方案: 执行如下命令安装GCC,然后重 ...
- Centos date 设置自定义时间
[1]手动修改 (1)设置日期 # date -s 20190315 (2)设置时间 # date -s 15:23:34 (3)设置日期和时间 # date -s "20190315 15 ...
- redis-windows和linux下安装
Window 下安装 下载地址:https://github.com/dmajkic/redis/downloads. 下载到的Redis支持32bit和64bit.根据自己实际情况选择,将64bit ...
- spring bean的scope
scope用来声明容器中的对象所应该处的限定场景或者说该对象的存活时间,即容器在对象进入其相应的scope之前,生成并装配这些对象,在该对象不再处于这些scope的限定之后,容器通常会销毁这些对象. ...
- Command 'java' not found during running appium
Question: When Execution code:driver = new RemoteWebDriver(new Uri("http://127.0.0.1:4723/wd/hu ...
- 使用PLSQL客户端导入导出数据库
本文主要介绍如何使用SQL Developer工具来实现备份数据库.数据导出等操作,然后实现Oracle对象导入数据等操作 1 导出数据库对象 在PL/SQL Developer的菜单Tools=&g ...
- 电路分析三------KCL,KVL,VCR方程
1.2b方程 2.举例 举例2