我有许多traceroutes,我需要相互比较,但我不知道最好的方法,我已经被告知哈希地图是一个很好的技术,但我不知道如何在我的代码上实现它们。
到目前为止,我有:FileInputStream fstream = new FileInputStream("traceroute.log");
// Get the object of DataInputStream
DataInputStream in = new DataInputStream(fstream);
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String strLine;
// reads lines in
while ((strLine = br.readLine()) != null) {
System.out.println(strLine);
,输出如下:
Wed Mar 31 01:00:03 BST 2010
traceroute to www.bbc.co.uk (212.58.251.195), 30 hops max, 40 byte packets
1 139.222.0.1 (139.222.0.1) 0.873 ms 1.074 ms 1.162 ms
2 core-from-cmp.uea.ac.uk (10.0.0.1) 0.312 ms 0.350 ms 0.463 ms
3 ueaha1btm-from-uea1 (172.16.0.34) 0.791 ms 0.772 ms 1.238 ms
4 bound-from-ueahatop.uea.ac.uk (193.62.92.71) 5.094 ms 4.451 ms 4.441 ms
5 gi0-3.norw-rbr1.eastnet.ja.net (193.60.0.21) 4.426 ms 5.014 ms 4.389 ms
6 gi3-0-2.chel-rbr1.eastnet.ja.net (193.63.107.114) 6.055 ms 6.039 ms *
7 lond-sbr1.ja.net (146.97.40.45) 6.994 ms 7.493 ms 7.457 ms
8 so-6-0-0.lond-sbr4.ja.net (146.97.33.154) 8.206 ms 8.187 ms 8.234 ms
9 po1.lond-ban4.ja.net (146.97.35.110) 8.673 ms 6.294 ms 7.668 ms
10 bbc.lond-sbr4.ja.net (193.62.157.178) 6.303 ms 8.118 ms 8.107 ms
11 212.58.238.153 (212.58.238.153) 6.245 ms 8.066 ms 6.541 ms
12 212.58.239.62 (212.58.239.62) 7.023 ms 8.419 ms 7.068 ms
我需要做的是将此跟踪与其他跟踪进行比较,并查找更改和时间差等,然后打印统计信息页。
答案 0 :(得分:0)
我将定义一个数据类(TraceEntry),它封装了一个条目信息:序列号,主机名,ip和持续时间。然后我会根据匹配条件定义equals()方法(ip我想?),并相应地实现hashCode()。
现在,可以将一个跟踪的所有条目添加到哈希集中,然后扫描另一个跟踪,查找哈希集中的匹配项。每当找到匹配项时,您都可以检查除ip之外的字段中的差异。
我希望我能理解你的比较模型。