java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > java List合并

java List中相同的数据合并到一起

作者:lfwh

这篇文章主要介绍了java List中相同的数据合并到一起,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

java List中相同的数据合并到一起

代码

List<Map<Object,Object>> mapList = new ArrayList<>();
        Map<Object,Object> map = new HashMap<>();
        map.put("C","111");
        map.put("NAME","LB");
        Map<Object,Object> map1 = new HashMap<>();
        map1.put("C","111");
        map1.put("NAME","LA");
        Map<Object,Object> map2 = new HashMap<>();
        map2.put("C","112");
        map2.put("NAME","LC");
        Map<Object,Object> map3 = new HashMap<>();
        map3.put("C","112");
        map3.put("NAME","Lh");
        Map<Object,Object> map4 = new HashMap<>();
        map4.put("C","113");
        map4.put("NAME","LC");
        Map<Object,Object> map5 = new HashMap<>();
        map5.put("C","114");
        map5.put("NAME","LF");
        mapList.add(map);
        mapList.add(map1);
        mapList.add(map2);
        mapList.add(map3);
        mapList.add(map4);
        mapList.add(map5);
        Map<Integer, List<Map<Object,Object>>> mapMap = new HashMap<>();
        for (Map<Object,Object> newMap : mapList){
            List<Map<Object, Object>>  newl = new ArrayList<>();
            // map是否包含此key,若已经包含则添加一个新的数字到对应value集合中
            if (mapMap.containsKey(Integer.valueOf(newMap.get("C").toString()))){
                //mapList.add(Integer.valueOf(newMap.get("C").toString()),newMap);
                mapMap.get(Integer.valueOf(newMap.get("C").toString())).add(newMap);
            }else{
                newl.add(newMap);
                mapMap.put(Integer.valueOf(newMap.get("C").toString()), newl);
            }
        }
        System.out.println(mapMap);

运行结果

参考资料1:https://www.cnblogs.com/invban/p/10318627.html

Java 多个List合并

多个同类型集合合并,可以使用可变参数,定义一个专门的方法,参考代码如下:

public class Main {
    public static void main(String[] args) {
        List<Integer> list1 = Arrays.asList(1, 2);
        List<Integer> list2 = Arrays.asList(3, 4);
        List<Integer> list3 = Arrays.asList(5, 6);
        List<Integer> integers = mergeList(list1, list2, list3);
        System.out.println(integers);
        List<String> list4 = Arrays.asList("A", "B");
        List<String> list5 = Arrays.asList("C", "D");
        List<String> list6 = Arrays.asList("E", "F");
        List<String> strings = mergeList(list4, list5, list6);
        System.out.println(strings);
    }
    public static <T> List<T> mergeList(List<T>... list){
        List<T> res = new ArrayList<>();
        if (Objects.nonNull(list)) {
            for (List<T> l : list) {
                res.addAll(l);
            }
        }
        return res;
    }
}

参考代码运行结果如下:

[1, 2, 3, 4, 5, 6]

[A, B, C, D, E, F]

到此这篇关于java List中相同的数据合并到一起的文章就介绍到这了,更多相关java List合并内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文