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

 更新时间:2023年07月08日 11:03:02   作者: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合并内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

最新评论