一个网站访问日志文件,如何取其中访问次数最多前10位的ip地址? 分两种情况:1是日志文件不太大,2是日志文件很大。大家说说看。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 考的就是算法和基础知识咯。对了,不限java 除了自己写算法外,用一用jre中的一些类,会更容易一些。 我的想法:1、文件不是很大的时候把内容都读入内存,用ip地址做key放到HashMap中,每次放的时候先判断HashMap中是否有该ip的key,不存在则value为1,存在则value+1再放进去,文件读完后再依次输出HashMap的key和value到一个大顶堆中去,可以加上优化,比如value为1的不存入大顶堆,这样一次循环完后再依次输出大顶堆中的前10个值就可以了,也可以满足动态的,比如取前20位,前5位ip次数最多的。2、如果文件很大的时候把内容分析后存入数据库日志表,这样用sql语句很容易找到访问排名前10位的ip。大家有什么更好的想法也说说看啊…… 将日志数据处理->写入一个临时表(或者多个表)->select 可以选择使用多个hash来进行优化,将大文件分成小文件再作后续处理 java程序思路求讨论 找高手解释 SSH 事务不起作用 Eclipse 怎么配置struts2.............在线等........... 帮忙,关于myeclipse的所有配置环境?在线等 怎么才能查询两张表的全部内容在同一表格里显示? 不同包访问问题 连接被关闭!!! 请教各位一个简单问题:Hibernate 中session.load()问题 TOMCAT配置已经成功,但我如何测试我自己的JSP页面? myeclipse部署项目到tomcat的时候具体做了哪些工作 跪求servlet 3.0 新特性:异步处理的简单小例子
1、文件不是很大的时候把内容都读入内存,用ip地址做key放到HashMap中,每次放的时候先判断HashMap中是否有该ip的key,不存在则value为1,存在则value+1再放进去,文件读完后再依次输出HashMap的key和value到一个大顶堆中去,可以加上优化,比如value为1的不存入大顶堆,这样一次循环完后再依次输出大顶堆中的前10个值就可以了,也可以满足动态的,比如取前20位,前5位ip次数最多的。2、如果文件很大的时候把内容分析后存入数据库日志表,这样用sql语句很容易找到访问排名前10位的ip。大家有什么更好的想法也说说看啊……