使用Guava将3个List<Map>集合根据某个字段合并成一个List<Map>集合?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Guava将3个List<Map>集合根据某个字段合并成一个List<Map>集合?相关的知识,希望对你有一定的参考价值。

一个里面的数据是[name=Harry, age=12, name=jerry, age=11]
一个里面的数据是[score=95, name=Harry, score=90, name=jerry]
一个里面的数据是[name=Harry, tel=111, name=jerry, tel=222]
怎么把这3个集合合并成一个
[“name”:”Harry”,”age”:12,”score”:95,”tel”:”111”,“name”:”jerry”,”age”:11,”score”:90,”tel”:”222”]

参考技术A

通过 java8 的流式编程,实现还是比较简单的。

代码比较多,已上传附件。

部分代码及运行结果截图

guava字符串工具 Splitter 主要功能是拆分字符串为集合 Map

public class SplitterTest {

    public static void main(String args[]){

     //1、拆分字符串为List集合
        String str="小小,妈妈,爸爸,爷爷,奶奶";
        Splitter splitter =Splitter.on(",");
        List<String> list=splitter.splitToList(str);
        System.out.println(list);
        //输出:[小小, 妈妈, 爸爸, 爷爷, 奶奶]

     //2、忽略空字符
        String str1="a,b,c,d,,f,g";
        //omitEmptyStrings()代表去除空字符串
        List<String> list1=Splitter.on(",").omitEmptyStrings().splitToList(str1);
        System.out.println(list1);
        //输出:[a, b, c, d, f, g]

     //3、忽略空字符且去除字符串前后空格
        String str2="a,b,c,d,,f,  g  ";
        List<String> list2=Splitter.on(",").omitEmptyStrings().trimResults().splitToList(str2);
        System.out.println(list2);
        //输出:[a, b, c, d, f, g]
    }
}

  

以上是关于使用Guava将3个List<Map>集合根据某个字段合并成一个List<Map>集合?的主要内容,如果未能解决你的问题,请参考以下文章

培训日报3.14(mysql,guava,穿山甲等)

guava-集合使用

使用 Guava 从列表中删除重复项

Guava工具类

guava学习:guava集合工具-table接口

将 Map<K, List<V>> 转换为 Map<K, V> 其中 V 有 2 个对象列表