0

我有两个数组列表,一个字段是日期,另一个是值。第一个列表 A 包含时间戳和距离,第二个列表 B 包含时间戳和延迟值。我必须将 LIST 与时间戳进行比较,当时间戳在 -1 和 1 之间时,可以匹配相应的距离和延迟。如果未找到匹配项,则在延迟中插入 -1。有人可以帮我吗?

清单 A

200-Wed Jun 05 11:33:00 CEST 2013
180-Wed Jun 05 11:34:02 CEST 2013
160-Wed Jun 05 11:35:43 CEST 2013
147-Wed Jun 05 11:36:55 CEST 2013
133-Wed Jun 05 11:36:57 CEST 2013
119-Wed Jun 05 11:36:57 CEST 2013
107-Wed Jun 05 11:36:58 CEST 2013    
96-Wed Jun 05 11:36:59 CEST 2013
87-Wed Jun 05 11:37:00 CEST 2013   
79-Wed Jun 05 11:37:02 CEST 2013
73-Wed Jun 05 11:37:02 CEST 2013
67-Wed Jun 05 11:37:03 CEST 2013
62-Wed Jun 05 11:37:04 CEST 2013
58-Wed Jun 05 11:37:05 CEST 2013

清单 B

18-Wed Jun 05 11:36:56 CEST 2013
9-Wed Jun 05 11:36:56 CEST 2013
21-Wed Jun 05 11:36:58 CEST 2013
16-Wed Jun 05 11:36:59 CEST 2013
26-Wed Jun 05 11:37:00 CEST 2013
27-Wed Jun 05 11:37:01 CEST 2013
24-Wed Jun 05 11:37:02 CEST 2013
24-Wed Jun 05 11:37:03 CEST 2013
17-Wed Jun 05 11:37:04 CEST 2013
16-Wed Jun 05 11:37:05 CEST 2013
12-Wed Jun 05 11:37:06 CEST 2013

我的最终结果列表应该看起来像

200,-1, Wed Jun 05 11:33:00 CEST 2013
180,-1, Wed Jun 05 11:34:02 CEST 2013
160,-1, Wed Jun 05 11:35:43 CEST 2013
147, 18, Wed Jun 05 11:36:55 CEST 2013
133, 9, Wed Jun 05 11:36:57 CEST 2013
119,21, Wed Jun 05 11:36:57 CEST 2013
107,16, Wed Jun 05 11:36:58 CEST 2013
96, 26, Wed Jun 05 11:36:59 CEST 2013
87, 27, Wed Jun 05 11:37:00 CEST 2013
79, 24, Wed Jun 05 11:37:02 CEST 2013
73, 24, Wed Jun 05 11:37:02 CEST 2013
67, 17, Wed Jun 05 11:37:03 CEST 2013
62, 16, Wed Jun 05 11:37:04 CEST 2013
58, 12, Wed Jun 05 11:37:05 CEST 2013

我的代码如下,但它似乎不起作用。

public static List<ResultLatency> resultLatency;

for(LatencyData dist : AList) {

  for(LatencyData latency : BList)  {
    DateTime param1  = new DateTime(new Date(dist.getLoggerTimestamp()));
    DateTime param2  = new DateTime(new Date(latency.getLoggerTimestamp()));
    ResultLatency rd = new ResultLatency();
    Seconds sec = Seconds.secondsBetween(param1, param2);
    if(sec.getSeconds() <= 1 && sec.getSeconds() >= -1){
      rd.setDistance(dist.getValue());
      rd.setLatencyValue((int) latency.getKey());
      rd.setloggerTimestamp(dist.getLoggerTimestamp())
      resultLatency.add(rd);
      break;
    }
    else if(sec.getSeconds() > 1) {
      rd.setDistance(dist.getValue());
      rd.setLatencyValue(-1);
      resultLatency.add(rd);
    }

  }
}

我得到的结果是:

200 -1
180 -1
160 -1
147 18
133 9
119 9 -- instead 21
107 21 --instead 16
96 16 -- instead 26
87 16 -- instead 27
79 24
73 24
67 24
62 17
58 16
4

0 回答 0