1
swuzjb 2018-08-28 19:50:26 +08:00 1
转 set 取交集 retainAll
|
2
lambdaxs 2018-08-28 19:58:52 +08:00
两两循环,取相等,算法复杂度 n2
|
3
johnniang 2018-08-28 20:04:58 +08:00 via Android 1
先排序吧,然后再比较最小值取最小,比较最大值取最小,截取 List,最后转 Set
|
4
Bryan0Z 2018-08-28 20:11:04 +08:00 via Android
排序,然后三个指针遍历一次
|
5
cyhou 2018-08-28 20:11:42 +08:00
Guava: Sets.intersection(Sets.newHashSet(ListA), Sets.newHashSet(ListB))
|
7
fmumu 2018-08-28 23:28:06 +08:00 via Android
循环往 set 里面放,set 的 add 方法是有返回的,当 set 里面已经包含这个元素时,会返回 false
|
8
hearfish 2018-08-29 02:52:26 +08:00
本来就有序的话三个指针遍历一次就行
无序的话维护一个 HashMap<Date, Integer>,统计每个日期出现的次数,最后遍历一次只返回出现 n 次的就行 |
9
jamesxu 2018-08-29 07:13:14 +08:00 via iPhone
CollectionUtils.intersection
|
11
inreality 2018-08-29 09:31:38 +08:00
可以说的更仔细一点吗,是日期段的交集还是日期点的交集
|
12
WisdomWang 2018-08-29 09:57:18 +08:00
用流?
|
13
wysnylc 2018-08-29 10:36:57 +08:00
三个集合转 HashMap,循环 A 同时 get B C,循环四次搞定
|
14
bumz 2018-08-29 10:40:18 +08:00
你这个业务逻辑看上去不是集合取交集,而是区间取交集
那就更简单了,找到左端点的最大值,右端点的最小值 |