java 数据采集

Shock_W 2016-05-16 07:08:04
文件保存大概20W的数据量,数据格式如下
#briup1775|037:wKgB1660A|7|1285376779|123.40.14.177 ---代表上线信息(标识符 7)
#|037:wKgB1660A|8|1285376779|176.25.20.110 --代表下线信息(标识符 8)

然后我用流对文件进行读取,如果是上线信息,保存在一个集合1中,
如果是下线信息,那就遍历集合1中的上线信息,通过ip这个来匹配,然后用一个集合2保存上线and下线信息,把这条上线信息
从集合1中remove掉,那么用什么集合比较好呢?求大神指教
...全文
158 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
skgary 2016-05-17
  • 打赏
  • 举报
回复
集合A用hashmap或hashtable,ip为key 第二个arraylist,因为你只增加,不删除
rickylin86 2016-05-17
  • 打赏
  • 举报
回复
由于数据量比较大,可以考虑运用多线程处理. 主要思路应该是先把上线信息集合还有下线信息集合都线数据单独归类出来.(多线程+正则+java.util.stream.Stream)这样来读取数据快些. 然后判断两个集合. 对于多现在集合考虑使用java.util.concurrent.ConcurrentHashMap<K,V>

62,628

社区成员

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

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