fcy0306 2022-05-12 02:51 采纳率: 0%
浏览 264

java 相关 怎么把两个list用类似left join整合成一个

问题遇到的现象和发生背景

现在有两个list,list1和list2
list1中内容 0 {No:1, name1:40}
1 {No:2, name1:20}
2 {No:3, name1:10}
3 {No:5, name1:30}
4 {No:6, name1:60}
.
list2中内容 0 {No:1, name2:20}
1 {No:2, name2:20}
2 {No:3, name2:10}
3 {No:4, name2:30}
4 {No:8, name2:60}

我想要达到的结果

可以看到两个list中有的No相同,有的只有一个才有
现在需要整合两个list变成一个新的list,若有相同No编号,则变为{No:1,name1:40,name2:20 different:20 }这种格式,different是list1-list2的差额
若无,则{No:2,name1:30,name2:0 different:30}

  • 写回答

2条回答 默认 最新

  • zcl_1991 2022-05-12 07:19
    关注

    img

    img

    评论
  • 不甘_ 2022-05-12 06:05
    关注

    参考代码如下:如有帮助望采纳
    sql语句

    sql语句
       SELECT list1.no,(list1.name-list2.name)different 
                    FROM list list1
                    left join list list2
                    WHERE  list1.no = list2.no
    
    

    java代码

    java代码
    public class TEST {
        public static void main(String[] args) {
           
            List<Model1> list1 = new ArrayList();
            List<Model1> list2 = new ArrayList();
            List<Model2> list3= new ArrayList();
            for (int i=0;i<list1.size();i++){
                for (int j=0;j< list2.size();j++){
    //判断两个集合no是否相等
                   if (list1.get(i).getNo()==list2.get(i).getNo()){
    //给第三个集合赋值并计算different
                       Model2 model2=new Model2();
                       model2.setName(list1.get(i).getName());
                       model2.setNo(list1.get(i).getNo());
                       model2.setDifferent(list1.get(i).getName()-list2.get(i).getName());
                   list3.add(model2);
                   }
                }
            }
            System.out.println(list3);
        }
        
        private static class Model2 {
            Integer no;
            Integer name;
            Integer different;
        
            public Integer getNo() {
                return no;
            }
        
            public void setNo(Integer no) {
                this.no = no;
            }
        
            public Integer getName() {
                return name;
            }
        
            public void setName(Integer name) {
                this.name = name;
            }
        
            public Integer getDifferent() {
                return different;
            }
        
            public void setDifferent(Integer different) {
                this.different = different;
            }
        }
        private static class Model1 {
            Integer no;
            Integer name;
        
            public Integer getNo() {
                return no;
            }
        
            public void setNo(Integer no) {
                this.no = no;
            }
        
            public Integer getName() {
                return name;
            }
        
            public void setName(Integer name) {
                this.name = name;
            }
        }
    }
    

    展开全部

    评论
编辑
预览

报告相同问题?

问题事件

  • 创建了问题 5月12日

悬赏问题

  • ¥15 开发板和电机具体的参数?
  • ¥100 如何对超大数据分段并进行对比处理
  • ¥50 mmc在一个管理单元检测到错误
  • ¥15 如何正确使用pyside6,使其符合LGPL?
  • ¥15 百度网盘app文件浏览效果怎么做?
  • ¥15 关于#python#的问题,请各位专家解答!
  • ¥100 如何快速统计出一亿行由0和1组成的数字里面的1连续出现几次及标记后出现的次数?
  • ¥15 include 头文件引用出错问题
  • ¥15 MATLAB并行池出问题
  • ¥15 本地运行成功上传到洛谷上却WA?
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部