Iterator遍历,迭代Map集合的三种方式

 Map集合有5种遍历方式 详细见我上篇关于Map集合的文章

其中的Iterator遍历如下

package demo3;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map.Entry;

public class TestIterator {
	public static void main(String[] args) {
		//创建对象
		Student stu1=new Student();
		Student stu2=new Student();
		Student stu3=new Student();
		
		//创建集合
		HashMap<Integer,Student> Map=new HashMap<Integer,Student>();
		
		//把对象放入集合
		Map.put(1, stu1);
		Map.put(2, stu2);
		Map.put(3, stu3);
		
		
		System.out.println("******** 第一种迭代keyset ********");
		
		Iterator<Integer> it=Map.keySet().iterator();
		while(it.hasNext()) {
			
			Integer key=it.next();
			Student value=Map.get(key);
			System.out.println("键值对是--"+key+"---"+value);
		}
		System.out.println("******** 第二种迭代values ********");
		
		Iterator<Student> it1=Map.values().iterator();
		while(it1.hasNext()) {
			
			Student value=it1.next();
			
			System.out.println("键值对是--"+"---"+value);
		}
		System.out.println("******** 第三种迭代entrySet ********");
		
		Iterator<Entry<Integer,Student>> it2=Map.entrySet().iterator();
		while(it2.hasNext()) {
			
			Entry<Integer,Student> entry=it2.next();
			Integer key=entry.getKey();
			Student value=entry.getValue();
			
			System.out.println("键值对是--"+key+"---"+value);
		}
		
	}
}

 

学生类 

package demo3;



public class Student {
	  private long id;
	  private String name;
	  private long age;
	  private String sex;
	  private String pwd;
	  private long tid;
	  private long version;


	  public long getId() {
	    return id;
	  }

	  public void setId(long id) {
	    this.id = id;
	  }


	  public String getName() {
	    return name;
	  }

	  public void setName(String name) {
	    this.name = name;
	  }


	  public long getAge() {
	    return age;
	  }

	  public void setAge(long age) {
	    this.age = age;
	  }


	  public String getSex() {
	    return sex;
	  }

	  public void setSex(String sex) {
	    this.sex = sex;
	  }


	  public String getPwd() {
	    return pwd;
	  }

	  public void setPwd(String pwd) {
	    this.pwd = pwd;
	  }


	  public long getTid() {
	    return tid;
	  }

	  public void setTid(long tid) {
	    this.tid = tid;
	  }


	  public long getVersion() {
	    return version;
	  }

	  public void setVersion(long version) {
	    this.version = version;
	  }

	@Override
	public String toString() {
		return "Student [id=" + id + ", name=" + name + ", age=" + age + ", sex=" + sex + ", pwd=" + pwd + ", tid="
				+ tid + ", version=" + version + "]";
	}

	public Student(long id, String name, long age, String sex, String pwd, long tid, long version) {
		super();
		this.id = id;
		this.name = name;
		this.age = age;
		this.sex = sex;
		this.pwd = pwd;
		this.tid = tid;
		this.version = version;
	}

	public Student() {
		super();
		// TODO Auto-generated constructor stub
	}
	  

}

 

 

 第三种迭代解析

map不有个Key和value吗 一个Key对应一个value 而key和value组合起来的一个组就是entry 要想取出这个组里的key和value就用entry的迭代器迭代即可。

//获得map的迭代器,用作遍历map中的每一个键值对
Iterator是迭代器,map之前应该定义过,姑且认为是HashMap。
<Entry<String,String>>表示map中的键值对都是String类型的。
map.entrySet()是把HashMap类型的数据转换成集合类型
map.entrySet().iterator()是去获得这个集合的迭代器,保存在iter里面。。
迭代器这么用:
while(iter.hasNext()) {
Entry<> obj = it.next();//就能获得map中的每一个键值对了
}

Iterator<Entry<String,String>> iter=map.entrySet().iterator();

按正常思路来写怎样写?
(调用entrySet()和iterator()不是分开写的吗?
为什么Entry的首字母要大写?

这留给聪明的你仔细想想!!!!

以上就是三种迭代的使用啦!!!!!

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 可以使用迭代器遍历std::map。下面是一个示例代码: ``` #include <iostream> #include <map> int main() { std::map<int, int> myMap; myMap[0] = 1; myMap[1] = 2; myMap[2] = 3; std::map<int, int>::iterator it; for (it = myMap.begin(); it != myMap.end(); ++it) { std::cout << it->first << " => " << it->second << '\n'; } return 0; } ``` 这段代码将使用迭代器遍历map,并打印出每一对键值。 ### 回答2: 在C++中,map是一种内置容器,用于存储一些键值对。当我们需要遍历map容器时,可以使用迭代器iterator,它是一种指向容器元素的对象,可以通过它访问map中的每个元素。 使用迭代器iterator遍历map时,需要先定义一个迭代器,然后通过循环语句来遍历map中的每个元素。以下是使用迭代器iterator遍历map的示例程序: ``` #include <iostream> #include <map> using namespace std; int main() { // 定义一个map容器 map<int,string> myMap; // 往map容器中添加元素 myMap.insert(pair<int,string>(1,"apple")); myMap.insert(pair<int,string>(2,"banana")); myMap.insert(pair<int,string>(3,"pear")); // 定义一个迭代器iterator map<int,string>::iterator it; // 遍历map容器中的每个元素 for(it=myMap.begin(); it!=myMap.end(); ++it) { cout<<"key="<<it->first<<", value="<<it->second<<endl; } return 0; } ``` 上述程序中,首先定义了一个map容器myMap,并添加了三个元素。然后定义一个迭代器iterator it,通过循环语句遍历map容器中的每个元素,输出了它们的键值对。 需要注意的是,在遍历map容器时,应该从begin()开始循环到end(),并使用箭头运算符->来访问每个元素的键与值。 在使用map容器时,使用迭代器iterator遍历map是一种非常方便和高效的方法,它可以让我们方便地访问map中的每个元素。 ### 回答3: 迭代器(iterator)是C++语言中非常重要的一个概念,它是STL(标准模板库)中许多STL容器的一种通用的访问机制,其中就包括map(映射容器)。在STL之前,为了对一个容器中的对象进行遍历,需要使用指针或数组来进行遍历,效率较低并且操作不够便捷。而迭代器方法则被广泛采用,具有高效、类型安全、灵活等优点。 在C++中,要遍历一个map,可以通过使用迭代器来完成。迭代器是C++中最基本的容器适配器之一,它是一个指针对象,可以通过它来访问容器中的元素。对于map容器来说,它的元素是由键(key)和值(value)组成,我们可以通过迭代器来获取或修改map中元素的键值对。 遍历一个map容器的迭代器使用方法如下: ``` //假设有一个map容器m map<int, string> m; //使用迭代器遍历map容器 for(map<int, string>::iterator it = m.begin(); it != m.end(); it++){ cout << it->first << " : " << it->second << endl; } ``` 通过上述代码可以看出,迭代器遍历map容器时有以下三个关键步骤: 1. 使用m.begin()方法获取map的起始迭代器,即指向map第一个元素的迭代器; 2. 使用m.end()方法获取map的结束迭代器,即指向map最后一个元素的迭代器的下一个位置; 3. 使用for循环对起始迭代器进行迭代,并对迭代器的指向元素进行操作。 其中,对于map容器的迭代器使用,还有两个方法需要介绍: 1. map容器的迭代器是支持“++”操作符的,即用“++”运算符来将迭代器移动到下一个位置(指向下一个键值对); 2. 对于map容器的迭代器来说,it->first表示键,it->second表示值。即通过迭代器访问map中的键值对时,可用it->first来获取其键,用it->second来获取其值。 总之,使用迭代器遍历map容器,可以极大地方便我们对map容器中的元素进行操作,提高我们的编程效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kjshuan

点个赞就好啦!!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值