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

2019-03-18 16:56:53 +08:00
 Edsie

目前有两个 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 的交集

1050 次点击
所在节点    问与答
2 条回复
coffeSlider
2019-03-18 17:10:06 +08:00
把 list2 改为 map {
businessId: 101,
list:{
businessId: 101,
name: xiaoming,
...
}
}
coffeSlider
2019-03-18 17:11:19 +08:00
结构如下 map {
101:{
businessId: 101,
name: xiaoming,
...
},
102:{
businessId: 102,
name: xiaowang,
...
}
}

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/545854

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX