Map.Entry

如何简便的遍历Map

你是否已经对每次从Map中取得关键字然后再取得相应的值感觉厌倦?

 

使用JDK5的增强for循环,来遍历Map,简单多了,比Map.Entry还方便。

看代码:

Java代码  收藏代码
  1. for (String key : map.keySet()) {  
  2.     System.out.println(key + " : " + map.get(key));  
  3. }  
 

 

 

 

最罗嗦遍历Map的方法:

 

Java代码  收藏代码
  1. Set keys = map.keySet( );  
  2. if(keys != null) {  
  3. Iterator iterator = keys.iterator( );  
  4. while(iterator.hasNext( )) {  
  5. Object key = iterator.next( );  
  6. Object value = map.get(key);  
  7. ;....  
  8. ;}  
  9.    

 

 

使用Map.Entry类,你可以得到在同一时间得到所有的信息。

Map类提供了一个称为entrySet()的方法,这个方法返回一个Map.Entry实例化后的 对象集。接着,Map.Entry类提供了一个getKey()方法和一个getValue()方法,因此,上面的代码可以被组织得更符合逻辑。

Map.Entry同时也提供了一个setValue()方法

 

 

 

Java代码  收藏代码
  1. private void a(){  
  2.     Map<String, String> values = new HashMap();  
  3.     for (Map.Entry entry : values.entrySet()) {  
  4.         Object key = entry.getKey( );  
  5.         Object value = entry.getValue();  
  6.     }  
  7. }  



 Map是java中的接口,Map.Entry是Map的一个内部接口。

         Map提供了一些常用方法,如keySet()、entrySet()等方法,keySet()方法返回值是Map中key值的集合;entrySet()的返回值也是返回一个Set集合,此集合的类型为Map.Entry。

         Map.Entry是Map声明的一个内部接口,此接口为泛型,定义为Entry<K,V>。它表示Map中的一个实体(一个key-value对)。接口中有getKey(),getValue方法。

         

        由以上可以得出,遍历Map的常用方法:

       1.  Map map = new HashMap();

           Irerator iterator = map.entrySet().iterator();

           while(iterator.hasNext()) {

                   Map.Entry entry = iterator.next();

                   Object key = entry.getKey();

                   //

           }

       2.Map map = new HashMap(); 

           Set  keySet= map.keySet();

           Irerator iterator = keySet.iterator;

           while(iterator.hasNext()) {

                   Object key = iterator.next();

                   Object value = map.get(key);

                   //

           }

 

       另外,还有一种遍历方法是,单纯的遍历value值,Map有一个values方法,返回的是value的Collection集合。通过遍历collection也可以遍历value,如

      Map map = new HashMap();

      Collection c = map.values();

      Iterator iterator = c.iterator();

      while(iterator.hasNext()) {

             Object value = iterator.next(); 

     }

转载于:https://www.cnblogs.com/baoendemao/p/3804735.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/273748.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HTML---HTML中常用的标签(标题,水平,特殊标签)

1、标题标签、水平标签和特殊字符*标题标签- <h1>... </h1>、 <h2>... </h2>、 <h3>... </h3>、... <h6>... </h6>-特点&#xff1a;从h1到h6字体由大到小、同时 自动换行。*水平标签- <hr/>-属性** size&#xff1a;水…

图解SQL的inner join(join)、left join、right join、full outer join、union、union all的区别...

对于SQL的Join&#xff0c;在学习起来可能是比较乱的。我们知道&#xff0c;SQL的Join语法有很多inner的&#xff0c;有outer的&#xff0c;有left的&#xff0c;有时候&#xff0c;对于Select出来的结果集是什么样子有点不是很清楚。Coding Horror上有一篇文章,通过文氏图 Ven…

数据库---四中连接查询(交叉、左连接、右连接、完整查询)

个人博客 &#xff1a;https://www.siyuan.run CSDN&#xff1a;https://blog.csdn.net/siyuan 微信小程序&#xff1a;思远Y 1、交叉连接查询 : (基本不适用---得到的是两张表数据的乘积) 语法&#xff1a;SELECT * FROM 表1,表2; PS&#xff1a;与表关系无关 示例&#xff…

如何用C#语言构造蜘蛛程序

"蜘蛛"&#xff08;Spider&#xff09;是Internet上一种很有用的程序&#xff0c;搜索引擎利用蜘蛛程序将Web页面收集到数据库&#xff0c;企业利用蜘蛛程序监视竞争对手的网站并跟踪变动&#xff0c;个人用户用蜘蛛程序下载Web页面以便脱机使用&#xff0c;开发者利…

数据库---练习题(45道)

准备工作 CREATE DATABASE STUDENTS; CREATE TABLE STUDENT( SNO VARCHAR(32) PRIMARY KEY NOT NULL, SNAME VARCHAR(32) NOT NULL, SSEX VARCHAR(32) NOT NULL, SBIRTHDAY DATETIME, CLASS VARCHAR(20) ); CREATE TABLE COURSE( CNO VARCHAR(20) PRIMARY KEY NOT NULL, CNAM…

LeetCode OJ - Populating Next Right Pointers in Each Node II

题目&#xff1a; Follow up for problem "Populating Next Right Pointers in Each Node". What if the given tree could be any binary tree? Would your previous solution still work? Note: You may only use constant extra space.For example,Given the fo…

数据库---JDBC

1.1 JDBC概述JDBC&#xff08;Java DataBase Connectivity,java数据库连接&#xff09;是一种用于执行SQL语句的Java API。JDBC是Java访问数据库的标准规范&#xff0c;可以为不同的关系型数据库提供统一访问&#xff0c;它由一组用Java语言编写的接口和类组成。 JDBC需要连接驱…

23种设计模式之简单工厂

简单工厂模式描述的是&#xff0c;通过类的继承关系&#xff0c;父类&#xff08;工厂类&#xff09;与子类&#xff08;产品类&#xff09;&#xff0c;调用父类中的方法&#xff0c;实际干活儿的是子类中的方法&#xff1b;封装需求的不确定性&#xff0c;做出通用的编程&…

原生JDBC操作数据库流程

1、class.forName()加载数据驱动 2、DriverManager.getConnection()获取数据库连接对象。 3、根据SQL或sql会话对象&#xff0c;有两种方式Statement、PreparedStatement。 4、执行sql处理结果集&#xff0c;如果有参数就设置参数。 5、关闭结果集&#xff0c;关闭会话&#xf…

verilog HDL 编码风格

1、有意义且有效的名字。 2、同一信号在不同层次应该保持一致。 3、添加有意义的后缀&#xff0c;使信号的有效性更加明确。 4、模块输出寄存器化&#xff0c;使得输出的驱动强度和输入延时是可以预测的。 5、使用括号表明优先级。 6、每一个if都应该有一个else。如果esle没有任…

为什么要使用PreparedStatement

(个人理解&#xff1a;执行速度&#xff0c;使用方便&#xff0c;代码的可读性维护性&#xff0c;提高性能&#xff0c;安全性 五个方面考虑) 1、PreparedStatement接口继承Statement&#xff0c;PreparedStatement实例包含了预编译的SQL语句&#xff0c;所以PreparedStatement…

session中存放一个对象,只修改对象的属性,不将修改后的对象存放session,发现session中存放的对象也发生改变!

标题简单描述&#xff1a;先将一个对象放入session&#xff0c;只对对象属性值进行修改&#xff0c;但不将修改后的对象存放session中&#xff0c;发现session中存放的对象属性值也相对应的改变。Person personnew PerSon(); request.getSession().setAttribute("person&q…

利用三层交换机实现VLAN间路由配置

利用三层交换机实现VLAN间路由配置 实验目标&#xff1a; 一、 掌握交换机Tag VLAN的配置&#xff1b; 二、掌握三层交换机基本配置方法&#xff1b; 三、 掌握三层交换机的VLAN路由的配置方法&#xff1b; 四、通过三层交换机实现VLAN见相互通信&#xff1b; 技术原理&#xf…

Maven,在pom.xml配置JDK 9版本。

<build><plugins><!-- 设置JDK 9版本 --><plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> …

【leetcode】Path Sum II

Given a binary tree and a sum, find all root-to-leaf paths where each paths sum equals the given sum. For example:Given the below binary tree and sum 22, 5/ \4 8/ / \11 13 4/ \ / \7 2 5 1 return [[5,4,11,2],[5,8,4,5] ] 下午做了个笔试没睡觉…

easyui、表格中添加操作一列,将操作下设置为修改,点击修改弹出该行对象的编号。

页面中的代码(自己引入easy插件)&#xff1a; <body> <div id"table"></div> </body> <script type"text/javascript"> $(function(){$(#table).datagrid({ url:tt.json, //显示的数据striped:true, …

被LTRIM(RTRIM())害死了,差点

LTRIM(character_expression)去掉前置空格 LTRIM(RTRIM())就是把前置和后置空格都去掉。 character_expression可以是常量、变量或列。character_expression必须属于某个可隐式转换为varchar的数据类型(text、ntext和image除外)。否则&#xff0c;请使用CAST显示转换character_…

Mybatis、使用注解的方式编写用户和角色一对多关系,并使用延迟加载

1、数据库准备 CREATE TABLE role ( ID INT(11) NOT NULL COMMENT 编号,ROLE_NAME VARCHAR(30) DEFAULT NULL COMMENT 角色名称,ROLE_DESC VARCHAR(60) DEFAULT NULL COMMENT 角色描述,PRIMARY KEY (ID) ) ENGINEINNODB DEFAULT CHARSETutf8;INSERT INTO role(ID,ROLE_NAME,…

织梦标签大全

关键描述调用标签&#xff1a; <meta name"keywords" content"{dede:field namekeywords/}"> <meta name"description" content"{dede:field namedescription functionhtml2text(me)/}"> -------------------------------…

spring的注入

1、构造函数注入的是设计到的标签&#xff1a;constructor-arg属性&#xff1a;index:指定参数在构造函数参数列表的索引位置type:指定参数在构造函数中的数据类型name:指定参数在构造函数中的名称上面三个都是找谁 &#xff0c;给谁赋值&#xff0c;下面两个指的是赋什么值 va…