Map 初始化和遍历的几种方式
package com.lyf.map;
import org.junit.Before;
import org.junit.Test;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.stream.Stream;
public class TraverseMap {
Map<String, String> map = new HashMap<>();
Map<String, String> map2 = null;
@Before
public void addInfo() {
map.put("1", "name");
map.put("2", "age");
map.put("3", "sex");
map2 = new HashMap<String, String>() {{
put("1", "name");
put("2", "age");
put("3", "sex");
}};
}
@Test
public void traverseMapByFor() {
System.out.println("for循环遍历Map");
for (Map.Entry<String, String> mapTemp : map.entrySet()) {
String key = mapTemp.getKey();
String value = mapTemp.getValue();
System.out.println("key: " + key + ",value: " + value);
}
System.out.println("for循环遍历keyMap");
for (String key : map.keySet()) {
System.out.println("key: " + key + ",value: " + map.get(key));
}
System.out.println("Iterator遍历Map");
Iterator<Map.Entry<String, String>> iterator = map.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry<String, String> next = iterator.next();
System.out.println("key: " + next.getKey() + ",value: " + next.getValue());
}
}
@Test
public void traverseMapByStream() {
System.out.println("Stream.forEach 遍历Map");
Set<Map.Entry<String, String>> entries = map.entrySet();
Stream<Map.Entry<String, String>> stream = entries.stream();
stream.forEach((entry) -> {
System.out.println("key:" + entry.getKey() + " value:" + entry.getValue());
});
System.out.println("Stream.filter");
map.entrySet().stream().filter(stringStringEntry -> stringStringEntry.getKey().equals("1")).forEach((entry) -> {
System.out.println("key:" + entry.getKey() + " value:" + entry.getValue());
});
}
@Test
public void traverseMapByForEach() {
System.out.println("Map.forEach 遍历Map");
map.forEach((key, value) -> {
System.out.println("key:" + key + " value:" + value);
});
}
}