java中的map集合类用于存储键值对,提供键(key)到值(value)的映射,不允许键重复,值可以重复。
代码提供Map的两种迭代方式:keyset方法和entryset方法。并使用传统Iterator方式和增强for循环的方式进行迭代。工程开发实践中,更多的会使用到entryset方法,重点掌握entryset!
/**
*
* 功能:Map的迭代方式:
* 1.keyset方法
* 获取Map集合中的所有键的Set集合,然后通过Set集合中的键访问Map集合中相应的值
* 2.entryset
* 获取Map集合中所有的键值对,并以Map.Entry的格式存入Set集合中,然后通过
* Map.Entry的getKey()和getValue()方法访问键值对
*/
package com.test.map;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Set;
import org.junit.Test;
public class Demo1 {
//传统方法迭代
@Test
public void test1(){
Map<Integer,String> map = new LinkedHashMap<Integer,String>();
map.put(1, "aa");
map.put(2, "bb");
map.put(3, "cc");
//传统 1.keyset
//获取map集合中的所有键的Set集合
Set<Integer> set = map.keySet();
Iterator<Integer> it = set.iterator();
while(it.hasNext()){
int key = it.next();
String value = map.get(key);
System.out.println(key + ":" + value);
}
}
@Test
public void test2(){
Map<Integer,String> map = new LinkedHashMap<Integer,String>();
map.put(1, "aa");
map.put(2, "bb");
map.put(3, "cc");
//传统 2.entryset
Set<Map.Entry<Integer,String>> set = map.entrySet();
Iterator<Map.Entry<Integer,String>> it = set.iterator();
while(it.hasNext()){
Map.Entry<Integer,String> entry = it.next();
int key = entry.getKey();
String value = entry.getValue();
System.out.println(key + ":" + value);
}
}
//使用增强for循环进行迭代
@Test
public void test3(){
Map<Integer,String> map = new LinkedHashMap<Integer,String>();
map.put(1, "aa");
map.put(2, "bb");
map.put(3, "cc");
//增强for循环 1.keyset
Set<Integer> set = map.keySet();
for(int key : set){
String value = map.get(key);
System.out.println(key + ":" + value);
}
}
@Test
public void test4(){
Map<Integer,String> map = new LinkedHashMap<Integer,String>();
map.put(1, "aa");
map.put(2, "bb");
map.put(3, "cc");
//增强for循环 2.entryset
Set<Map.Entry<Integer,String>> set = map.entrySet();
for(Map.Entry<Integer,String> entry : set){
int key = entry.getKey();
String value = entry.getValue();
System.out.println(key + ":" + value);
}
}
}