?? datamatcher.java
字號:
package dms.business.collectProcess;
import java.io.IOException;
import java.util.Vector;
import dms.data.LogRecord;
import dms.data.MatchedRecord;
import dms.util.FileUtil;
public class DataMatcher {
/**
* 匹配登錄、登出數據
* @param logout 登出數據
* @param login 登錄數據
* @return 匹配好的用戶登錄時長記錄
* @throws IOException
* @throws Exception
*/
public Vector<MatchedRecord> match(Vector<LogRecord> logouts,Vector<LogRecord> logins) throws IOException {
System.out.println("本次需要匹配:登錄="+logins.size()+"條,登出="+logouts.size()+"條");
Vector<MatchedRecord> matchedRecords = new Vector<MatchedRecord>();
for(LogRecord logout:logouts){
for(LogRecord login:logins){
if(logout.getUserName().equals(login.getUserName()) &&
logout.getPid() == login.getPid() &&
logout.getUserIp().equals(login.getUserIp()) &&
logout.getVisitTime() > login.getVisitTime()){
MatchedRecord matchedRecord = new MatchedRecord();
matchedRecord.setUserName(logout.getUserName());
matchedRecord.setUserIp(logout.getUserIp());
matchedRecord.setLabIp(logout.getLabIp());
matchedRecord.setLoginTime(login.getVisitTime());
matchedRecord.setLogoutTime(logout.getVisitTime());
matchedRecord.setDuration(logout.getVisitTime() - login.getVisitTime());
matchedRecords.addElement(matchedRecord);
logins.remove(login);
break ;//跳出login循環,執行logout下一次循環
}
}
}
// 循環匹配到此結束,此時logins里面剩余的就是沒有匹配上的,把這個logins寫入文件
String fileName = FileUtil.getHistoryFile();
FileUtil.passivate(fileName,logins);
System.out.println("本次匹配成功:"+matchedRecords.size()+"條");
System.out.println("本次匹配失敗:"+logins.size()+"條");
return matchedRecords;
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -