代码
public class HashMapDemo {
public Map<String,String> getInfo(){
Map<String, String> map = new HashMap<>(8);
map.put("1", "a");
map.put("2", "b");
map.put("3", "c");
map.put("4", "d");
return map;
}
@Test
public void test1(){
Map<String, String> map = getInfo();
map.putIfAbsent("4", "l");
map.putIfAbsent("6", "f");
System.out.println(map);
}
@Test
public void test2(){
Map<String, String> map = getInfo();
map.replace("2","666");
map.replace("6","888");
System.out.println(map);
}
@Test
public void test3(){
Map<String, String> map = getInfo();
map.replaceAll((key,val)-> val+"----");
System.out.println(map);
}
@Test
public void test4(){
Map<String, String> map = getInfo();
System.out.println(map.getOrDefault("1", "not fond"));
System.out.println(map.getOrDefault("5", "not fond"));
}
@Test
public void test5(){
Map<String, String> map = getInfo();
map.forEach((key,val)->{
System.out.println(key+"*");
});
System.out.println(map);
}
@Test
public void test6(){
Map<String, String> map = getInfo();
Set<Map.Entry<String, String>> entrySet = map.entrySet();
for (Map.Entry<String, String> entry:entrySet) {
entry.setValue("666");
}
System.out.println(entrySet);
System.out.println(map);
}
@Test
public void test7(){
Map<String, String> map = getInfo();
Set<String> set = map.keySet();
System.out.println(set);
}
@Test
public void test8(){
Map<String, String> map = getInfo();
List<String> values = new ArrayList<>(map.values());
System.out.println(values);
}
@Test
public void test9(){
Map<String, String> map = getInfo();
String m = map.merge("5", "m", (oldValue, newValue) -> oldValue + "/" + newValue);
System.out.println(m);
String n = map.merge("2", "n", (oldValue, newValue) -> oldValue + "/" + newValue);
System.out.println(n);
System.out.println(map);
}
@Test
public void test10(){
Map<String, String> map = getInfo();
String s = map.compute("5", (key, value) -> key + value + "*");
System.out.println(s);
String s2 = map.compute("2", (key, value) -> key + value + "*");
System.out.println(s2);
System.out.println(map);
}
@Test
public void test11(){
Map<String, String> map = getInfo();
String s = map.computeIfAbsent("2", key -> "666");
System.out.println(s);
String s2 = map.computeIfAbsent("5", key -> "666");
System.out.println(s2);
System.out.println(map);
}
@Test
public void test12(){
Map<String, String> map = getInfo();
String s = map.computeIfPresent("2", (key, val) -> key + ":" + val);
System.out.println(s);
String s2 = map.computeIfPresent("5", (key, val) -> key + ":" + val);
System.out.println(s2);
System.out.println(map);
}
@Test
public void test13(){
Map<String,HashMap> map = new HashMap<>(8);
map.put("1",new LinkedHashMap<String,String>());
LinkedHashMap<String, String> linkedHashMap = new LinkedHashMap<>();
linkedHashMap.put("m","m");
linkedHashMap.put("n","n");
map.put("2",linkedHashMap);
System.out.println("map:"+map);
map.computeIfPresent("2",(key,val)->{
System.out.println("map中键值是2的值:"+val);
val.put("l","l");
return val;
});
System.out.println("map:"+map);
map.computeIfPresent("2",(key,val)->{
System.out.println("map中键值是2的值:"+val);
return null;
});
System.out.println("map中键值是2计算后的值:"+map.get("2"));
System.out.println("map:"+map);
}
}