示例HashMap初始化重复操作如下:
HashMap<string,HashMap<LocalDateTime, Orders>> InitHashMap=getAll(); HashMap<LocalDateTime, Orders> allOrders=InitHashMap.get(id); if(allOrders!=null){ allOrders.put(date, order); //<---REPEATED CODE }else{ allOrders = new HashMap<>(); allOrders.put(date, order); //<---REPEATED CODE InitHashMap.put(id, allOrders); }
1、使用computeIfAbsent()简单实现
InitHashMap.computeIfAbsent(id, key -> new HashMap<>()).put(date, order);
相关文档:Map#computeIfAbsent
2、使用containsKey(id)简单实现
if(!InitHashMap.containsKey(id)) InitHashMap.put(id, new HashMap<LocalDateTime, Orders>()); InitHashMap.get(id).put(date, Orders);
或者
HashMap<LocalDateTime, Orders> allOrders = InitHashMap.get(id);
if (allOrders == null) {
allOrders = new HashMap<LocalDateTime, Orders>();
InitHashMap.put(id, allOrders);
}
allOrders.put(date, Orders);
3、HashMap常用操作代码
1) put方法插入数据
public static void main(String[] args) { ///*Integer*/map.put("1", 1);//向map中添加值(返回这个key以前的值,如果没有返回null) HashMap<String, Integer> map=new HashMap<>(); System.out.println(map.put("1", 1));//null System.out.println(map.put("1", 2));//1 }
2) get方法获取数据
public static void main(String[] args) { HashMap<String, Integer> map=new HashMap<>(); map.put("DEMO", 1); /*Value的类型*///得到map中key相对应的value的值 System.out.println(map.get("1"));//null System.out.println(map.get("DEMO"));//1 }
3) containsKey判断是否含有key
public static void main(String[] args) { HashMap<String, Integer> map=new HashMap<>(); /*boolean*///判断map中是否存在这个key System.out.println(map.containsKey("DEMO"));//false map.put("DEMO", 1); System.out.println(map.containsKey("DEMO"));//true }
4) containsValue判断是否包含value
public static void main(String[] args) { HashMap<String, Integer> map=new HashMap<>(); /*boolean*///判断map中是否存在这个value System.out.println(map.containsValue(1));//false map.put("DEMO", 1); System.out.println(map.containsValue(1));//true }
5) 显示所有的value值
public static void main(String[] args) { HashMap<String, Integer> map=new HashMap<>(); /*Collection<Integer>*///显示所有的value值 System.out.println(map.values());//[] map.put("DEMO1", 1); map.put("DEMO2", 2); System.out.println(map.values());//[1, 2] }
6) 显示所有key和value
public static void main(String[] args) { HashMap<String, Integer> map=new HashMap<>(); /*SET<map<String,Integer>>*///显示所有的key和value System.out.println(map.entrySet());//[] map.put("DEMO1", 1); System.out.println(map.entrySet());//[DEMO1=1] map.put("DEMO2", 2); System.out.println(map.entrySet());//[DEMO1=1, DEMO2=2] }
相关文档:
Java putIfAbsent和computeIfAbsent使用说明及示例代码
Java HashMap computeIfAbsent()使用方法及示例代码