V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Edsie
V2EX  ›  问与答

求大佬指点,两个 List 的交集

  •  
  •   Edsie · 2019-03-18 16:56:53 +08:00 · 883 次点击
    这是一个创建于 986 天前的主题,其中的信息可能已经有所发展或是发生改变。

    目前有两个 list:(数据类型是 List<Map<String,String> Java 程序 ) list1: 数据少,携带 list2 主键 businessId 可以关联到 list2 list2:数据大,

    (求交集)如果 list2 中 businessId 在 list1 存在的话,将该条 map,拼接到 list1 中, 最后返回拼接好的 list eg:

    list1: {  
    		[  
            id: 1  
            businessId: 101,  
            ...  
            ],  
            [  
            id:2,  
            businessId: 102,  
            ...  
            ]  
    }  
    
    list2: {  
    		[  
            businessId: 101,  
            name: xiaoming,  
            ...  
            ],  
            [  
            businessId: 102,  
            name: daqiang,  
            ...  
            ],  
            [
            businessId: 103,  
            name:  xiaohong,  
            ...  
            ],  
            ....  
    }  
    返回:  
    list: {  
    		[  
            id: 1  
            businessId: 101,  
            name: xiaohong,  
            ...  
            ],  
            [  
            id: 2,  
            businessId: 102,  
            name: daqiang,  
           	...  
            ]  
    }  
    

    双层遍历的话,因为 list2 会慢慢变大,时间复杂度会越来越高,请问怎么处理能快速得到两个 list 的交集

    2 条回复    2019-03-18 17:11:19 +08:00
    coffeSlider
        1
    coffeSlider   2019-03-18 17:10:06 +08:00
    把 list2 改为 map {
    businessId: 101,
    list:{
    businessId: 101,
    name: xiaoming,
    ...
    }
    }
    coffeSlider
        2
    coffeSlider   2019-03-18 17:11:19 +08:00
    结构如下 map {
    101:{
    businessId: 101,
    name: xiaoming,
    ...
    },
    102:{
    businessId: 102,
    name: xiaowang,
    ...
    }
    }
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   915 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 20:43 · PVG 04:43 · LAX 12:43 · JFK 15:43
    ♥ Do have faith in what you're doing.