精华内容
下载资源
问答
  • JAVA 8 合并两个MapListMap
    千次阅读
    2021-11-30 16:34:50

    数据库查询出来 的List ,需要进行转换在到页面进行显示。

    通过java list stream()流的方式进行循环

            final Map<String, BigDecimal> enterMap = enterTime.stream().collect(Collectors.toMap(EChartVO::getTitleType, EChartVO::getMaxData));
            final Map<String, BigDecimal> exitMap = exitTime.stream().collect(Collectors.toMap(EChartVO::getTitleType, EChartVO::getMinData));
            //将两个Map进行数据合并,如果有冲突的取主map的 V1,没有冲突的,补0 (BigDecimal.ZERO)
            //使用TreeMap 是为了对Key 进行排序
            Map<String, BigDecimal> total = new TreeMap<>(enterMap);
            exitMap.forEach((key,value)-> total.merge(key,BigDecimal.ZERO,(v1,v2) -> v1));
            Map<String, BigDecimal> total2 = new TreeMap<>(exitMap);
            enterMap.forEach((key,value)-> total2.merge(key,BigDecimal.ZERO,(v1,v2) -> v1));
    
            Map<String, BigDecimal> total3 = new TreeMap<>(exitMap);
            enterMap.forEach((key,value)-> total3.putIfAbsent(key,BigDecimal.ZERO));

    toal2跟total3得到的结果是一样

    //将两个Map进行数据合并,如果有冲突的取主map的 V1,没有冲突的,补0 (BigDecimal.ZERO) //使用TreeMap 是为了对Key 进行排序

     merge(K key, V value,BiFunctionsuper V, ? super V, ? extends V> remappingFunction):

    * 功能大部分与compute相同,不同之处在于BiFunction中apply的参数,入参为oldValue、value,

    * 调用merge时根据两个value进行逻辑处理并返回value。 

    我想要的结果是,enterMap 里跟exitMap里面进行合并两次,因为两个Map里面的Key有相同,也有不同,如果相同就取自己,如果不同,我的需求是补0,如果说想要在不同的时候,取有值的,刚修改如下:

    Map<String, BigDecimal> total2 = new TreeMap<>(exitMap);
            enterMap.forEach((key,value)-> total2.merge(key,value,(v1,v2) -> v1));
    enterMap={2021-11-22=10, 2021-11-11=23, 2021-11-12=6, 2021-11-02=1, 2021-11-29=1, 2021-11-18=5, 2021-11-19=36, 2021-11-17=11}
    exitMap={2021-11-22=6, 2021-11-11=24, 2021-11-12=4, 2021-11-01=4, 2021-11-29=1, 2021-11-18=5, 2021-11-19=31, 2021-11-17=10}
     total={2021-11-01=0, 2021-11-02=1, 2021-11-11=23, 2021-11-12=6, 2021-11-17=11, 2021-11-18=5, 2021-11-19=36, 2021-11-22=10, 2021-11-29=1}
     total2={2021-11-01=4, 2021-11-02=0, 2021-11-11=24, 2021-11-12=4, 2021-11-17=10, 2021-11-18=5, 2021-11-19=31, 2021-11-22=6, 2021-11-29=1}
     data={minMon=[4, 0, 24, 4, 10, 5, 31, 6, 1], maxMon=[0, 1, 23, 6, 11, 5, 36, 10, 1], titleMon=[2021-11-01, 2021-11-02, 2021-11-11, 2021-11-12, 2021-11-17, 2021-11-18, 2021-11-19, 2021-11-22, 2021-11-29]}

    上面是结果

    更多相关内容
  • JavaListmap里面map中某个key相同记录的其他key 的 value 合并 JavaListmap里面map中某个key相同记录的其他key 的 value 合并
  • 今天小编就为大家分享一篇关于判断ListMap是否相等并合并List中相同的Map,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
  • 实现方式是通过 putAll() 方法将多个 map 对象中的数据放到另外一个全新的 map 对象中,代码如下所示,展示了两个 map 对象的合并,如果是多个 map 合并也是用这种方式。public static void main(String[] args) {...

    实现方式是通过 putAll() 方法将多个 map 对象中的数据放到另外一个全新的 map 对象中,代码如下所示,展示了两个 map 对象的合并,如果是多个 map 合并也是用这种方式。

    public static void main(String[] args) {

    Map map1 = new HashMap();

    map1.put("one", "一");

    map1.put("two", "二");

    map1.put("three", "三");

    Map map2 = new HashMap();

    map1.put("ten", "十");

    map1.put("nine", "九");

    map1.put("eight", "八");

    // 合并

    Map combineResultMap = new HashMap();

    combineResultMap.putAll(map1);

    combineResultMap.putAll(map2);

    // 合并后打印出所有内容

    for (Map.Entry entry : combineResultMap.entrySet()) {

    System.out.println(entry.getKey() + ":" + entry.getValue());

    }

    }

    合并后的 map 对象打印结果如下:

    20181225181601366711.png

    展开全文
  • java stream 两个ListMap合并

    千次阅读 多人点赞 2020-08-31 18:01:10
    利用Java8的Stream流工具,实现两个List<Map, Object>>合并,通过Map中的某个key值实现数据合并
            // ============== new三条源数据,value值均为一个字,加入list ==================
            Map<String, Object> map1 = new HashMap<>();
            map1.put("id", "1");
            map1.put("ab", "甲");
            map1.put("ac", "乙");
            Map<String, Object> map2 = new HashMap<>();
            map2.put("id", "2");
            map2.put("ab", "丙");
            map2.put("ac", "丁");
            Map<String, Object> map3 = new HashMap<>();
            map3.put("id", "3");
            map3.put("ab", "小果");
            map3.put("ac", "相机");
            
            List<Map<String, Object>> sourceList = new ArrayList<>();
            sourceList.add(map1);
            sourceList.add(map2);
            sourceList.add(map3);
    
            // ============== new三条新数据,value值均为两个字,加入list ==================
            Map<String, Object> newMap1 = new HashMap<>();
            newMap1.put("id", "1");
            newMap1.put("ww", "小强");
            newMap1.put("nn", "小张");
            Map<String, Object> newMap2 = new HashMap<>();
            newMap2.put("id", "2");
            newMap2.put("ww", "王红");
            newMap2.put("nn", "王亮");
            Map<String, Object> newMap3 = new HashMap<>();
            newMap3.put("id", "3");
            newMap3.put("ww", "朱大");
            newMap3.put("nn", "朱二");
    
            List<Map<String, Object>> newList = new ArrayList<>();
            newList.add(newMap1);
            newList.add(newMap2);
            newList.add(newMap3);
            
            // ============ 把newList的所有内容添加到sourceList中 ==============
            sourceList.addAll(newList);
    
            sourceList.forEach(System.out::println);
            System.out.println();
    
            /*
             输出结果:
                {ab=甲, ac=乙, id=1}
                {ab=丙, ac=丁, id=2}
                {ab=小果, ac=相机, id=3}
                {ww=小强, nn=小张, id=1}
                {ww=王红, nn=王亮, id=2}
                {ww=朱大, nn=朱二, id=3}
            
            合并相同id下的value集合,我们要求合并后的结果:
                {nn=小张, ww=小强, ab=甲, ac=乙, id=1}
                {nn=王亮, ww=王红, ab=丙, ac=丁, id=2}
                {nn=朱二, ww=朱大, ab=小果, ac=相机, id=3}
             */
    
            
            // ================ 利用Java8的Stream流实现合并 =========================
            List<Map<String,Object>> combine = sourceList.stream()
                    .collect(Collectors.groupingBy(group -> group.get("id").toString())) // 根据map中id的value值进行分组, 这一步的返回结果Map<String,List<Map<String, Object>>>,目的是将相同id下的value归类到一个value下
                    .entrySet() // 得到Set<Map.Entry<String, List<Map<String, Object>>>
                    .stream() // 使用Java8的流
                    .map(m -> { // 进入映射环境
                        // m.getValue()的结果是 List<Map<String, Object>>
                        Map<String, Object> collect = m.getValue().stream()
                                // 核心重点!o.entrySet() 的结果是 Set<Map.Entry<String, Object>>,通过flatMap将value合并成一个stream
                                .flatMap(o -> o.entrySet().stream())
                                // (m1, m2) -> m2 的意思是如果 m1 == m2 则使用m2
                                .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (m1, m2) -> m2));
                        return collect;
                    }).collect(Collectors.toList());
    
            // 输出测试,
            combine.forEach(System.err::println);
            
            /*
              测试结果:
                 {nn=小张, ww=小强, ab=甲, ac=乙, id=1}
                 {nn=王亮, ww=王红, ab=丙, ac=丁, id=2}
                 {nn=朱二, ww=朱大, ab=小果, ac=相机, id=3}
              
              达到目标要求('◡')
             */
    

    (本文完 ! )
    如需引用此文内容,必须付此原文链接!

    展开全文
  • java 合并两个map

    2022-04-01 11:10:12
    public static Map mapMerge(List<Map> list) { Map<Object, List> map = new HashMap<>(); for (Map m : list) { Iterator<Object> it = m.keySet().iterator(); while (it.hasNext())...
    
        public static Map mapMerge(List<Map> list) {
            Map<Object, List> map = new HashMap<>();
            for (Map m : list) {
                Iterator<Object> it = m.keySet().iterator();
                while (it.hasNext()) {
                    Object key = it.next();
                    if (!map.containsKey(key)) {
                        List newList = new ArrayList<>();
                        newList.add(m.get(key));
                        map.put(key, newList);
                    } else {
                        map.get(key).add(m.get(key));
                    }
                }
            }
            return map;
        }
    
    展开全文
  • java-合并两个Map

    千次阅读 2021-05-15 16:49:09
    Java8中如何合并两个map? 如何处理Map含有重复元素的情况? 1. 初始化 我们定义两个map实例 private static Map<String, People> map1 = new HashMap<>(); private static Map<String, People>...
  • } ListA和ListB通过id相同进行筛选获取ListA public static List<Goods> TwoToList(List<Goods> goods,List<Users> users) { Map, Users> listMap = users.stream().collect(Collectors.toMap(x -> x.getUserId(), ...
  • Java8两个list集合合并成一个list集合

    千次阅读 2021-10-27 11:13:02
    为什么要用Lambda表达式和Stream流做集合的处理?... 合并成一新的集合 C:{"id": "12345","name": "zhangsan", "age": 23} 1、将listA集合转换为map Map<String, Person> map = listA.stre
  • JAVA合并两个具有相同key的maplist,不多说,直接上代码:/*** list合并类*/public class MapUtil {public static void main(String[] args){List> osvList = new ArrayList<>();Map map1 = new HashMap&...
  • public static List<HashMap<String, Object>> merge(ArrayList<HashMap<String, Object>> list1,ArrayList<HashMap<String, Object>> list2,String key) { //List<...
  • 假设两个List<HashMap> map1和List<HashMap> map2, map1的key有key1,key2,key3,key4,key5, map2有key1,key2,key6,key7,key8, 现需要以key1和key2为依据,若两者相等则将map1和map2中的元素合并为新的List...
  • * @Description: 合并两个list<map>,并将userId相同的其它属性合并 * @Title: mergeList * @param: @return * @return: List<Map<String,Object>> * @throws */ public static...
  • 1. 介绍本入门教程将介绍Java8中如何合并两个map。更具体说来,我们将研究不同的合并方案,包括Map含有重复元素的情况。2. 初始化我们定义两个map实例private static Map map1 = new HashMap<>();private ...
  • java合并元素为maplist

    千次阅读 2018-08-01 16:56:05
    list的元素信息如下图所示: {GLRS=0, BMMC=部门1, XCZY=57}, {GLRS=7, BMMC=部门1, XCZY=0}, {GLRS=0, BMMC=部门2, XCZY=14}, {GLRS=4, BMMC=部门2, XCZY=0}, {GLRS=0, BMMC=部门3, XCZY=66}, {GLRS=9, BMMC...
  • java 2个list合并去重

    千次阅读 2021-03-19 09:31:28
    java 2个list合并去重[2021-02-02 13:42:37]简介:php去除nbsp的方法:首先创建一个PHP代码示例文件;然后通过“preg_replace("/(\s|\&nbsp\;| |\xc2\xa0)/", " ", strip_tags($val));”方法去除所有nbsp即可。...
  • 根据两个List中的某个相同字段合并成一条List,包含两个List中的字段 目录一、前言二、示例示例1:java8 合并两个 list<map>示例2:java8 合并两个 list示例3:java8 合并两个 list,集合个数前者小于后者,要后者...
  • Java8合并ListMap),为一Map

    千次阅读 2019-11-08 16:47:08
    -----数据 [{gailun=盖伦},{zhaoxin=赵信},{ruiwen=瑞文}] -----目标 {gailun=盖伦,zhaoxin=赵信,...List<Map<String,Object>> lists=new ArrayList<>(); Map<String, Object> merged = ...
  • java8 Stream对List<Map>的分组合并操作

    千次阅读 2021-03-17 10:57:39
    话不多说,直接上代码,请朋友们自行测试~public class Gamer47 {public static void main(String[] args) {//将...//将两个List合并成一个List,“name”为map的keymergeTwoListmapToOneListmap(null,null,"name"...
  • java8 lambda小试牛刀,利用Streamlist转map,并将两个list的数据对象合并起来
  • java8中stream流解决两个list合并问题

    千次阅读 2022-01-25 19:39:43
    当我们遇到需要将两个list合并成一个list实体的时候,可以使用java8的stream流来解决,以下是我的一个小demo,可供大家参考学习。 public ResultDto listBalancer(Integer pageIndex, Integer pageLimit, String ...
  • 合并两个List并去掉重复项

    千次阅读 2021-02-12 20:07:25
    工作中很多时候需要用到合并两个List并去除其中的重复内容。这是一个很简单的操作,这里主要是记录一下通过用Stream来完成这项操作。在java8之前比较常规的做法是将两个List添加到一个Set中,因为Set的内容不可重复...
  • 两个List<Map>快速合并

    千次阅读 2020-04-17 11:20:45
    在日常的开发中经常遇见需要对两个List<Map<String,Object>>合并后的数据进行处理,常用的方法无非是各自for循环再...针对此情况,利用Java 8 Lambda可以快速将两个List<Map<String,Object>...
  • java8两个List指定对象属性进行合并

    千次阅读 2021-08-05 09:19:28
    public static void main(String[] args... List<EmpQuDaoOneAdmin> empQuDaoOneAdmins = new ArrayList<>(); EmpQuDaoOneAdmin dEmpQuDaoOneAdmin = new EmpQuDaoOneAdmin(); dEmpQuDaoOneAdmin.setE...
  • Java 将多个list合并成一个

    千次阅读 2022-02-15 17:13:20
    List<Integer> list1 = Arrays.asList(1, 2, 3); List<Integer> list2 = Arrays.asList(4, 5, 6); List<Integer> list3 = Arrays.asList(7, 8, 9); List<Integer> merge
  • java8合并两个List

    千次阅读 2020-06-03 10:46:05
    解决问题:根据两个List中的某个相同字段合并成一条List,包含两个List中的字段 举例: list1: [{pid=1,pname=衣服,picture=http://1.jpg,desc=111},{pid=2,pname=衣服2,picture=http://2.jpg,desc=222}] list2: [{...
  • 封装的list,需要期中一个list合并到另一个中,覆盖之前已存在的。 这里展示实现的某一种方式如下: 目标list1集合: List<HashMap> list1 = new ArrayList<HashMap>(); list1集合示例: ...
  • JAVA8 Stream ListMap 合并 key

    千次阅读 2019-07-10 19:15:23
    stream转map后如何控制合并, 查看Collector.toMap()后发现里面有一mergeFunction, 然后我就做了如下的操作,记录一下 List<AdvanceStockOutDistributionDetailVO> list = Optional.ofNullable(r...
  • Java 两个list数据根据某个字段合并

    万次阅读 2018-10-12 20:50:01
    之前遇到一个需求,字段是每小时那种(2018101208)。然后服务给我数据少了部分。然后我需要自已推算。...两个list根据某个字段进行合并。 1、获取过去15天的小时 初始化变量 public String start...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 52,151
精华内容 20,860
关键字:

java把两个list map合并

java 订阅