java map 遍历

package com.xiawenquan.map.demo;

import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Set;
import java.util.Map.Entry;
import com.xiawenquan.map.demo.Student;
public class TestMap {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		//HashMap无序    LinkedHashMap有序
		Map<String, Student> map = new LinkedHashMap<String, Student>();
		for(int i = 0 ; i < 10 ; i++){
			map.put(i + "", new Student("夏文权_" + i, "北京霍营_" + i, i+1));
			System.out.println("添加" + i + "成功");
		}
		
//		getMapEntry(map);
		
//		getCollectionValues(map);
		
		
		getKeySet(map);
		
	}
	
	/**
	 * 把一个map对象放到放到entry里,然后根据entry同时得到key和值
         * (效率高)entryset只是遍历了第一次,他把key和value都放到了entry中,所以就快.
	 * @param map
	 */
	private static void getMapEntry(Map<String, Student> map){
		
		if(!map.isEmpty()){
			Set<Map.Entry<String, Student>> entries = map.entrySet();
			if(!entries.isEmpty()){
				Iterator<Entry<String, Student>> iterator = entries.iterator();
				
				while (iterator.hasNext()) {
					Map.Entry<java.lang.String, Student> entry = (Map.Entry<String, Student>) iterator.next();
							
					String key = entry.getKey();
					Student student = entry.getValue();
					
					String name = student.getName();
					String addreess = student.getAddress();
					int id = student.getId();
					
					System.out.println("id == " + id + "  name == " + name + "  address === " + addreess);
				}
			}
		}
	}
	
	
	/**
	 * 把key放到一个集合里,遍历key值同时根据key得到值 
         * (效率低,对于keySet其实是遍历了2次,一次是转为iterator,一次就从hashmap中取出key所对于的value。)
	 * @param map
	 */
	private static void getKeySet(Map<String, Student> map){
		
		if(!map.isEmpty()){
			
			Set<String> set = map.keySet();
			if(!set.isEmpty()){
				Iterator<String> iterator = set.iterator();
				while (iterator.hasNext()) {
					String key = (String) iterator.next();
					Student student = map.get(key);//根据key获取map的值
					
					String name = student.getName();
					String addreess = student.getAddress();
					int id = student.getId();
					
					System.out.println("id == " + id + "  name == " + name + "  address === " + addreess);
				}
			}
		}
	}
	
	/**
	 * 把值放到一个集合力,然后便利集合
	 * @param map
	 */
	private static void getCollectionValues(Map<String, Student> map){
		
		if(!map.isEmpty()){
			Collection<Student> collection = map.values();
			if(!collection.isEmpty()){
				Iterator<Student> iterator = collection.iterator();
				while (iterator.hasNext()) {
					
					Student student = (Student) iterator.next();
					String name = student.getName();
					String addreess = student.getAddress();
					int id = student.getId();
					
					System.out.println("id == " + id + "  name == " + name + "  address === " + addreess);
				}
			}
		}
	}
}

 

 

package com.xiawenquan.map.demo;

public class Student {
	
	private String name;
	private String address;
	private int id;
	
	public Student(String name, String address, int id) {
		this.name = name;
		this.address = address;
		this.id = id;
	}
	
	public Student() {
		// TODO Auto-generated constructor stub
	}
	
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getAddress() {
		return address;
	}
	public void setAddress(String address) {
		this.address = address;
	}
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
}
Java中,Map是一种键值对的数据结构,用于存储和操作键值对。遍历Map可以通过以下几种方式实现: 1. 使用entrySet()方法遍历:通过Map的entrySet()方法获取到Map中所有的键值对,然后使用增强型for循环遍历每个键值对,可以分别获取到键和值。 ```java Map<String, Integer> map = new HashMap<>(); // 添加键值对 map.put("A", 1); map.put("B", 2); map.put("C", 3); // 遍历Map for (Map.Entry<String, Integer> entry : map.entrySet()) { String key = entry.getKey(); Integer value = entry.getValue(); System.out.println("Key: " + key + ", Value: " + value); } ``` 2. 使用keySet()方法遍历:通过Map的keySet()方法获取到Map中所有的键,然后使用增强型for循环遍历每个键,可以通过键获取到对应的值。 ```java Map<String, Integer> map = new HashMap<>(); // 添加键值对 map.put("A", 1); map.put("B", 2); map.put("C", 3); // 遍历Map for (String key : map.keySet()) { Integer value = map.get(key); System.out.println("Key: " + key + ", Value: " + value); } ``` 3. 使用forEach()方法遍历Java 8及以上):通过Map的forEach()方法结合Lambda表达式遍历Map中的每个键值对。 ```java Map<String, Integer> map = new HashMap<>(); // 添加键值对 map.put("A", 1); map.put("B", 2); map.put("C", 3); // 遍历Map map.forEach((key, value) -> { System.out.println("Key: " + key + ", Value: " + value); }); ``` 以上是三种常用的遍历Map的方式,根据具体的需求选择适合的方式进行遍历
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值