示例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()使用方法及示例代码