博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ava:Map借口及其子类HashMap三
阅读量:5935 次
发布时间:2019-06-19

本文共 2228 字,大约阅读时间需要 7 分钟。

ava:Map借口及其子类HashMap三

HashMap常用子类(异步非安全线程,性能高; Hashtable:同步的安全线程,性能低)

 

map(HashMap)中的key,value可以通过 Set<E>,或者Conllection<E>来接收.

Map
allMap = new HashMap
(); 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
keys = allMap.values(); Iterator
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
allSet = new HashMap
(); allSet.put("zhangsan", 1); allSet.put("zhangsan", 2); allSet.put("lisi", 3); allSet.put("wangwu", 4); Set
> allList = allSet.entrySet(); Iterator
> iter = allList.iterator(); while(iter.hasNext()) { Map.Entry
map = iter.next(); System.out.println( map.getKey() + "-->" + map.getValue() ); }

  

Set
> allList = allSet.entrySet();Iterator
> iter = allList.iterator();while(iter.hasNext()){ Map.Entry
map = iter.next(); System.out.println( map.getKey() + "-->" + map.getValue() ); }

结果:

lisi-->3zhangsan-->2wangwu-->4

  

或者Foreach循环:

Map
allSet = new HashMap
(); allSet.put("zhangsan", 1); allSet.put("zhangsan", 2); allSet.put("lisi", 3); allSet.put("wangwu", 4); //或者 for(Map.Entry
map: allSet.entrySet()) { System.out.println( map.getKey() + "-->" + map.getValue()); }

  

 

转载地址:http://zmctx.baihongyu.com/

你可能感兴趣的文章
iOS开发UI篇—Quartz2D使用(信纸条纹)
查看>>
EL表达式经典用法
查看>>
【转】Flume日志收集
查看>>
转:Log4j使用
查看>>
CSS3 box-sizing 属性
查看>>
【转】java-String中的 intern()
查看>>
用户登录系统之后,禁止用户返回到登录页面
查看>>
java.lang.NoClassDefFoundError: javax/mail/Authenticator
查看>>
数据库多对多型数据表分类设计
查看>>
深入Activity,Activity启动模式LaunchMode完全解析
查看>>
黄聪:iis7.5 偶尔出现500服务器错误-内部服力器错误
查看>>
CSS3与页面布局学习总结
查看>>
驱动的境界
查看>>
sql 转 markdown
查看>>
Noise,Error,wighted pocket Algorithm
查看>>
hive内部表、外部表、分区表、视图
查看>>
人工智能--学术会议排名
查看>>
轻量级C#编辑器RoslynPad
查看>>
[Asp.net mvc]OutputCacheAttribute
查看>>
html布局小练习(百度首页)
查看>>