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); 如果此映射 ...
随机推荐
- lecture3-线性神经元和算法
Hinton第三课 这节课主要是介绍NN的输出端常用的神经元,然后重点是说明怎么使用BP来计算偏导数,在Hinton这一课中,他提供了他1986年参与写的<并行分布处理>一书的第8章,49 ...
- async 更优雅异步体验
上一篇<让 Generator 自启动>介绍了通过起动器让 Generator 跑起来,而本篇采用 async 实现更优雅的异步编程. 从例子开始 借用上一篇例子中的例子说起. funct ...
- 如何实现EndNote中的PDF批量导出
如果在EndNote数据库中已建立大量的参考文献,且每条文献都有PDF文件对应,怎样将需要的某十几条甚至几十条参考文献对应的PDF文件从数据库导出另存在新建的文件夹 1. 按住“Ctrl”键,逐条 ...
- 为什么VC经常输出烫烫烫烫烫烫烫烫
为什么VC经常输出烫烫烫烫烫烫烫烫 2012-05-07 11:52 by Rollen Holt, 12747 阅读, 4 评论, 收藏, 编辑 在Debug 模式下, VC 会把未初始化的栈内存全 ...
- keypress,keydown,keyup,charCode,keyCode兼容性问题
keypress对应的是字符编码,如“ABC”,“123”之类,有大小写之分(有兼容性问题) keydown,keyup对应的是键盘的键码,无大小写之分,每个键盘都有一个键码(无兼容性问题) 使用ke ...
- BroadcastReceiver之SD的挂载监听
首先,新建一个类,继承于BroadcastReceiver,然后去配置Manifest.xml这就不用说了, 注意配置Manifest.xml时候的一些细节 必须加上<data android: ...
- Change Eclipse Tooltip's Color in Ubuntu
这个问题十分高级,随着Ubuntu版本的变迁这个问题的解决方案也在不断变化 最开始,SystemSettings里面可以设置工具条背景色,后来这个选项在新版本Ubuntu中消失了 我用过Ubuntu1 ...
- idea 新建web项目
- 【POJ 3415】Common Substrings 长度不小于k的公共子串的个数
长度不小于k的公共子串的个数,论文里有题解,卡了一上午,因为sum没开long long!!! 没开long long毁一生again--- 以后应该早看POJ里的Discuss啊QAQ #inclu ...
- poi-处理excel的单元格日期数据
poi处理excel时,当excel没有明确指明是哪个类型的数据时,poi很可能处理单元格的日期数据时就有可能是一串数字.而使用java程序基本无法转换 以下为对poi处理日期情况一些方面的处理(不是 ...