关于java剔除手机黑名单的算法,有没有更好的?

Mars.CN 2011-10-09 02:25:44
现在有两个集合,一个是号码集合,另外一个是黑名单集合,现在需要把号码集合中的黑名单剔除,目前用到的方式就是双循环,但是号码集合和黑名单集合都可能有几十万的号码,双循环的话速度太慢了,各位高人有没有什么号的方式剔除黑名单?

集合A:号码集合
集合B:黑名单集合
需要得到的结果:剔除集合B出现在集合A中的号码
...全文
123 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
qqlwq123 2011-10-12
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 ksqqxq 的回复:]

引用 4 楼 qqlwq123 的回复:
2个集合排好序,重新储存号码集合,当某个号码和黑名单相同就跳过。时间复杂度应该就是O(2NLogN+N).


排序应该也需要时间吧。
[/Quote]
排序时间就是O(NlogN)了,排2次
ETCentury 2011-10-12
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 qqlwq123 的回复:]
2个集合排好序,重新储存号码集合,当某个号码和黑名单相同就跳过。时间复杂度应该就是O(2NLogN+N).
[/Quote]

排序应该也需要时间吧。
qqlwq123 2011-10-10
  • 打赏
  • 举报
回复
2个集合排好序,重新储存号码集合,当某个号码和黑名单相同就跳过。时间复杂度应该就是O(2NLogN+N).
TKD03072010 2011-10-10
  • 打赏
  • 举报
回复
遍历B集合
然后判断B集合的元素是否出现在A集合中
若有则将其删除
可以用contains来判断 若存在则删除
Mars.CN 2011-10-10
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 liuyuhua0066 的回复:]

JJ童鞋
不要重复发帖
[/Quote]

木有重复,一个是在EE区里面,一个是在SE区里面
liuyuhua0066 2011-10-09
  • 打赏
  • 举报
回复
JJ童鞋
不要重复发帖

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧