Map集合遍历的2种方法
Map是一个集合的接口,是key-value相映射的集合接口,集合遍历的话,需要通过Iterator迭代器来进行。
Iterator是什么东西:
java.util包下的一个接口:
对 collection 进行迭代的迭代器。迭代器取代了 Java Collections Framework 中的 Enumeration。迭代器与枚举有两点不同:
迭代器允许调用者利用定义良好的语义在迭代期间从迭代器所指向的 collection 移除元素。
方法名称得到了改进
方法摘要 | |
---|---|
boolean |
hasNext() 如果仍有元素可以迭代,则返回 true。 |
E |
next() 返回迭代的下一个元素。 |
void |
remove() 从迭代器指向的 collection 中移除迭代器返回的最后一个元素(可选操作)。 |
1、来一个简单的例子吧:
摘抄自别的网站:写的非常清楚
http://www.cnblogs.com/azhqiang/p/4110333.html
Map读取键值对,Java遍历Map的两种实现方法
第一种方法是根据map的keyset()方法来获取key的set集合,然后遍历map取得value的值
import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;
public class HashMapTest2
{
public static void main(String[] args)
{
HashMap map = new HashMap(); map.put("a","aaaa");
map.put("b","bbbb");
map.put("c","cccc");
map.put("d","dddd"); Set set = map.keySet(); for(Iterator iter = set.iterator(); iter.hasNext();)
{
String key = (String)iter.next();
String value = (String)map.get(key);
System.out.println(key+"===="+value);
}
}
}
第二种方式是使用Map.Entry来获取:
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class HashMapTest4
{
public static void main(String[] args)
{
HashMap map = new HashMap(); map.put("a","aa");
map.put("b","bb");
map.put("c","cc");
map.put("d","dd"); Set set = map.entrySet(); for(Iterator iter = set.iterator(); iter.hasNext();)
{
Map.Entry entry = (Map.Entry)iter.next(); String key = (String)entry.getKey();
String value = (String)entry.getValue();
System.out.println(key +" :" + value);
}
}
}
获取map的大小:
public static void main(String[] args) { Map map = new HashMap(); map.put("apple", "新鲜的苹果"); //向列表中添加数据 map.put("computer", "配置优良的计算机"); //向列表中添加数据 map.put("book", "堆积成山的图书"); //向列表中添加数据 System.out.println("Map集合大小为:"+map.size()); }
我自己试了,并对其中的每一步进行了详解
基础类:
public class Student {
//private int num;//身份证号
private String name;
private String sex;
public Student() {
super();
// TODO Auto-generated constructor stub
}
public Student(String name, String sex) {
super();
this.name = name;
this.sex = sex;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
测试集合类:
public class Test3 {
public static void main(String[] args) {
//创建学员
Student stu1=new Student("李明", "男");
Student stu2=new Student("张丽", "女");
//创建保存键-值的集合对象
Map students=new HashMap();
//把英文名字与学员对象按键-值的方式 存储在HashMap中
students.put("Jack", stu1);
students.put("danae", stu2); /*************第一种方法*********************
//返回此映射中包含的键的 Set 视图
Set set= students.keySet();//keyset返回一个set的集合
//建一个set的迭代器
Iterator it=set.iterator();//创建键值的迭代器
//hasNext()如果仍有元素可以迭代,则返回 true。
while(it.hasNext()){//存在下一个值的时候
//返回迭代的下一个元素
String key=(String) it.next();
Student value=(Student)(students.get(key));
System.out.println(key+"-------"+value.getName()+value.getSex()); }
******************************************************/
Set set=students.entrySet();//返回此映射中包含的映射关系的 Set 视图。
Iterator it=set.iterator();//建set集合的迭代器
//遍历集合迭代器
while(it.hasNext()){
/***********
* 映射项(键-值对)。Map.entrySet 方法返回映射的 collection 视图,
* 其中的元素属于此类。获得映射项引用的唯一 方法是通过此 collection 视图的迭代器来实现。
* 这些 Map.Entry 对象仅 在迭代期间有效;更确切地讲,
* 如果在迭代器返回项之后修改了底层映射,则某些映射项的行为是不确定的,除了通过 setValue 在映射项上执行操作之外。
*/
Map.Entry entry=(Map.Entry) it.next();//有下一个集合数据
String key=(String) entry.getKey();
//entry.getkey或getvalue返回的是Object类型的数据,所以要强转,因为我的value值是多个数据,这些数据都是要通过我的student类才能获取到它的属性值
Student value=(Student) entry.getValue();
System.out.println(key+"-----------"+value.getName()+value.getSex()); } }
}
Map集合遍历的2种方法的更多相关文章
- Map集合遍历的4种方法
完全复制https://www.cnblogs.com/blest-future/p/4628871.html import java.util.HashMap; import java.util.I ...
- Map 集合遍历的4种方法
Map 集合初始化时,指定集合初始值大小. 说明:HashMap 使用 HashMap(int initialCapacity) 初始化. 正例:initialCapacity = (需要存储的元素个 ...
- map集合遍历的五种方法
package com.jackey.topic; import java.util.ArrayList;import java.util.HashMap;import java.util.Itera ...
- Map集合遍历的四种方式理解和简单使用-----不能for循环遍历
Map集合遍历的四种方式理解和简单使用 ~Map集合是键值对形式存储值的,所以遍历Map集合无非就是获取键和值,根据实际需求,进行获取键和值 1:无非就是通过map.keySet()获取到值,然后 ...
- Map集合遍历的四种方式理解和简单使用
~Map集合是键值对形式存储值的,所以遍历Map集合无非就是获取键和值,根据实际需求,进行获取键和值 1:无非就是通过map.keySet()获取到值,然后根据键获取到值 for(String s:m ...
- Map集合迭代的两种方法
import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; pub ...
- List集合遍历的三种方法
测试数据: List<String> list = new ArrayList<String>(); list.add("java"); list.add( ...
- Java Map集合 遍历 五种方式(包含 Lambda 表达式遍历)
示例代码如下: package com.miracle.luna.lambda; import java.util.HashMap; import java.util.Iterator; import ...
- Map接口中的常用方法和Map集合遍历键找值方式
Map接口中定义了很多方法,常用的如下: public V put(K key,V value) 将指定的值与此映射中的指定键相关联(可选操作) V remove(Object key); 如果此映射 ...
随机推荐
- Oracle 常用操作【02】数据库特性
1. 导出 oracle 注释 -- 表明細+表注释+字段明细+字段注释 a.一个用户下的表明細+表注释+字段明细+字段注释 select ATC.OWNER, atC.TABLE_NAME, utc ...
- sql基本命令
--------------------------------------------------------SQL基本命令开始----------------------------------- ...
- React-Native运行知乎日报遇到的问题
研究几天RN(React-Native)后,跟着官方的demo做了一下电影图片显示的那个,但是总感觉官方的demo欠缺点什么,所以找来找去找到了RN版的知乎日报,话说知乎日报什么版的都有,不信你们上网 ...
- NPOI2.0学习(二)
如果你要编辑的行和单元格,原本没有值,或者从未创建过的,就必须先创建. //在第二行创建行 IRow row = sheet.CreateRow(); //在第二行的第一列创建单元格 ICell ce ...
- 网页样式——各种炫酷效果持续更新ing...
1.evanyou效果-彩带的实现,效果如下 注:这个主要用的是Canvas画布实现的,点击背景绘制新的图形,代码如下: /*Html代码:*/ <canvas id=">< ...
- Myeclipse下JSP打开报空指针异常解决方法。
Myeclipse下JSP打开报空指针异常解决方法 一.运行JSP文件就出错 静态的JSP页面访问时候正常,只要是牵涉到数据库的页面就出错,出错见下图. 出现这种情况让我调试了一天,各种断点,各种改代 ...
- Node.js项目目录介绍
新建的项目结构应该是这样 bin:项目的启动文件,也可以放其他脚本. node_modules:用来存放项目的依赖库. public:用来存放静态文件(css,js,img). routes:路由控制 ...
- JavaScript 全栈工程师培训教程(来自阮一峰)
来源于:https://twitter.com/ruanyf http://www.ruanyifeng.com/blog/2016/11/javascript.html 全栈工程师培训材料,帮助学习 ...
- 快速向表中插入大量数据Oracle中append与Nologging
来源于:http://blog.sina.com.cn/s/blog_61cd89f60102e7gi.html 当需要对一个非常大的表INSERT的时候,会消耗非常多的资源,因为update表的时候 ...
- Hibernate正向工程(实体类-->数据库)
1,新建实体类News.java package com.hanqi.dao; import java.util.Date; public class News { private Integer i ...