我有一个单一用户的日志条目,其格式如下:
[unique id], [start time],[ end time]
因此,在以下示例条目中:
1,1100,1200
2,1030,1130
3,1420,1500
4,1519,1700
查找会话,即将日志条目分组为“会话”。确定会话的条件是:
示例:输出应类似于:
Session 1: 1, 2
Session 2: 3, 4
逻辑上我在想什么:
我想出了下面的代码,但是我对如何处理上面的第3点逻辑感到困惑。
private static List<String> groupSessions(List<String> inputs) {
List<String> output = new ArrayList<>();
List<LogEntries> entries = new ArrayList<>();
for (String input : inputs) {
String[] arr = input.split(",");
LogEntries entry =
new LogEntries(Integer.parseInt(arr[0]), Integer.parseInt(arr[1]),
Integer.parseInt(arr[2]));
entries.add(entry);
}
// sort it basis on startTime
Collections.sort(entries);
// now iterate the entries list - this is where I am confuse
for (int i = 0; i < entries.size(); i++) {
// do some stuff
}
return output;
}
答案 0 :(得分:1)
一些想法:
长话短说:您必须首先开发一种算法,该算法可以告诉您如何确定会话。然后,您将该指令序列转换为代码。关键是首先从概念上将大问题分解为最小的部分,然后查看如何将它们组合在一起。