在达内培训做电信DMS 客户类遇到的问题 希望哪个大哥能指点下 谢谢

过天 2009-05-03 01:54:20
这个代码
这个代码负责匹配用户计时的登入和登出的。。
* 负责匹配登录/登出数据,并返回用户登录时间数据。
* 参数是两个Vector类型的登录/登出数据结构,元素类型是LogRecord,返回的是匹配好的用户登录时长记录,数据类型是Vector,
* 其中元素类型是MatchedRecord,详细说明请 参考MatchedRecord类的说明。
* @param logins 登录数据结构
* @param logouts 登出数据结构
* @return 匹配生成的用户登录时长数据
* @throws MatchedException
*/
private Vector<MatchedRecord> match(Vector<LogRecord> logins,
Vector<LogRecord> logouts) throws MatchedException{
Vector<MatchedRecord> matches = new Vector<MatchedRecord>();//存放匹配结果
LogRecord logout = null;
for(int i=0;i<logouts.size();i++){//进行迭代-然后匹配处理
logout = logouts.get(i);
LogRecord login = null;
for(int j=0;j<logins.size();j++){
login = logins.get(j);
if (login.getPid() == logout.getPid()&& login.getUserip().equals(logout.getUserip())) {
long duration = logout.getVisittime()- login.getVisittime();//登录时长
if(duration<0){
//这种情况不可能发生,除非数据出了问题
//System.out.println(logout);
//System.out.println(login);
//把登出数据删除,保留登入数据
logouts.remove(logout); // 我的问题所在 我的问题所在
//throw new MatchedException("匹配出来的时长数据不合理");
}else{
// 6.产生MatchedRecord对象,并放入Vector类型的结构
MatchedRecord match = new MatchedRecord();
match.setLabip(logout.getLabip());
match.setUser(logout.getUser());
match.setLogintime(login.getVisittime());
match.setLogouttime(logout.getVisittime());
match.setUserip(logout.getUserip());
match.setDuration(duration);
matches.add(match);
logins.remove(j);
//把匹配过的数据删除
j--;
//理论上每个登出肯定都能找到一个登入,所以匹配过的数据的删除可以在这里实现
//logouts.remove(i); //匹配过的数据才登录,登出中都要删除。
break;
}
}
}
logouts.remove(i); //匹配过的数据才登录,登出中都要删除。
i--;
}
return matches;
}

我想问一下 logouts.remove(logout); 后 为什么不BREAK 如果不BREAK得话 他将会接着用LOGOUTS登出的下一个继续与登入比较 但是这个时候J已经变了,也就是说登入不是从第一个与登出的下一个比较,而是第J个登入与登出的下一个比较,万一J前面与登出的下一个有匹配的 不是不能匹配了?
...全文
210 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
jimson 2010-05-14
  • 打赏
  • 举报
回复
支持支持。。
ty_tarena_pger 2009-05-03
  • 打赏
  • 举报
回复
我也是0902的,那个代码你在好好看看(你那个想法人家都做了),唉

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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