【发布时间】:2021-12-03 09:40:27
【问题描述】:
我有两个 ArrayLists 保存来自 pcap 文件的 TCP Flow 对象。一个列表是一个参考列表,其中包含找到的每个唯一数据包(没有双精度,只有找到的每个唯一数据包)。另一个列表是 Flow 对象的列表,这些对象的流程在我的程序中标记为已完成。
我的目标:使用参考列表,计算数据包出现在已完成流列表中的次数或频率。
TCP Flow Object定义如下:
public class Flow {
String destIp;
String sourceIp;
String destPort;
String srcPort;
double arrivalTime;
int completed;
}
可以使用destIp, sourceIp, destPort, 和srcPort 来识别每个TCP 流对象。
我之前发现我可以在 Collections 中使用频率方法,但我必须使用 4 个不同的元组来识别一行,而不仅仅是一个。我最初的计划是创建一个嵌套的 for 循环,从引用列表中检查一个数据包,然后检查已完成流列表中的每个数据包,例如:
for(Flow referenceList : refList) {
for(Flow compList : cList) {
if tuples match the one in cList add to count
}
}
是否有更简单或更有效的方法来实现这一点?
【问题讨论】: