Map(java)遍历及其遍历时移除键值对操作
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import org.junit.Test;
/**
* @description: 遍历map
* 此处以HashMap为例,他是线程不安全的。
* @author viakiba
* @date 2017年8月29日
*/
public class App {
/**
* @description:
* 方式1:使用keyset拿到key的set集合,通过key取出value
* @author: viakiba
* @throws Exception
*/
@Test
public void test1() throws Exception {
Map<String, String> map = new HashMap<String,String>();
map.put("k1", "v1");
map.put("k2", "v2");
map.put("k3", "v3");
map.put("k4", "v4");
Set<String> keys = map.keySet();
for(String key:keys){
String value = map.get(key);
System.out.println(value+":"+key);
}
}
/**
* @description:
* entrySet
* @author: viakiba
* @throws Exception
*/
@Test
public void test2() throws Exception {
Map<String, String> map = new HashMap<String,String>();
map.put("k1", "v1");
map.put("k2", "v2");
map.put("k3", "v3");
map.put("k4", "v4");
Set<Entry<String, String>> entrySet = map.entrySet();
for(Map.Entry<String, String> entry : entrySet){
System.out.println(entry.getKey()+":"+entry.getValue());
}
System.out.println("======================================");
Iterator<Entry<String, String>> iterator = entrySet.iterator();
while(iterator.hasNext()){
Entry<String, String> next = iterator.next();
System.out.println(next.getKey()+":"+next.getValue());
}
}
/**
* @description:map
* 遍历
* @author: viakiba
* @throws Exception
*/
@Test
public void test3() throws Exception {
Map<String, String> map = new HashMap<String,String>();
map.put("k1", "v1");
map.put("k2", "v2");
map.put("k3", "v3");
map.put("k4", "v4");
Collection<String> values = map.values();
for(String value : values){
System.out.println(value);
}
System.out.println("================================");
Iterator<String> iterator = map.values().iterator();
while(iterator.hasNext()){
String next = iterator.next();
iterator.remove();
System.out.println(next);
}
}
/**
* @description: 遍历中,移除map中的键值对
* @author: viakiba
* @throws Exception
*/
@Test
public void test4() throws Exception {
Map<String, String> map = new HashMap<String,String>();
map.put("k1", "v1");
map.put("k2", "v2");
map.put("k3", "v3");
map.put("k4", "v4");
Collection<String> values = map.values();
for(String value : values){
System.out.println(value);
}
System.out.println("================================");
Iterator<String> iterator = map.values().iterator();
while(iterator.hasNext()){
String next = iterator.next();
iterator.remove();
System.out.println(next);
}
}
}
转载于:https://my.oschina.net/viakiba/blog/1525588