【问题标题】:How can i replace List<map> map key's value in java如何在 java 中替换 List<map> 映射键的值
【发布时间】:2021-02-08 10:07:42
【问题描述】:

我想在这里替换所有迭代的时间值

List<Map<String,Object>> mapList=new ArrayList<Map<String,Object>>();
Map myMap1=new HashMap();
myMap1.put("name", "jai");
myMap1.put("time", Instant.now());
mapList.add(myMap1);
Map myMap2=new HashMap();
myMap2.put("name", "kishan");
myMap2.put("time", Instant.now()); 

【问题讨论】:

    标签: java list dictionary collections


    【解决方案1】:

    我得到了答案

    import java.time.Instant;
    import java.time.temporal.ChronoUnit;
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    public class HelloWorld {
    
        public static void main(String... args) {
            List<Map<String,Object>> mapList=new ArrayList<Map<String,Object>>();
            Map<String, Object> myMap1=new HashMap<String, Object>();
            myMap1.put("name", "jai");
            myMap1.put("time", Instant.now());
            mapList.add(myMap1);
            Map<String, Object> myMap2=new HashMap<String, Object>();
            myMap2.put("name", "kishan");
            myMap2.put("time", Instant.now());
            mapList.add(myMap2);
            System.out.println(mapList);
            mapList.forEach(oneMap -> replaceKeyBy(oneMap));
            System.out.println(mapList);
            
            }
        private static void replaceKeyBy(Map<String, Object> map) {
            map.replace("time",Instant.now().plus(10, ChronoUnit.DAYS));
        }
    }
    

    【讨论】:

      【解决方案2】:

      使用remove("time")返回旧值并放入新键

      mapList.forEach(map ->{
          map.put("new time",map.remove("time"));
      });
      

      【讨论】:

        猜你喜欢
        • 2021-03-20
        • 1970-01-01
        • 2018-12-07
        • 2020-08-23
        • 1970-01-01
        • 2019-11-27
        • 2023-03-30
        • 2019-09-08
        • 1970-01-01
        相关资源
        最近更新 更多