使用java如何计算,如何在某一个时间点断了,需要重新计算距离,必须连续的时间的两个点,才能够进行相减:报错
List<Historylocation> list=Arrays.asList(
new Historylocation(12l),
new Historylocation(13l),
new Historylocation(14l),
new Historylocation(15l),
new Historylocation(16l),
new Historylocation(17l),
new Historylocation(18l)
);
List<Historylocation> list2=Arrays.asList(
new Historylocation(12l,10),
new Historylocation(13l,13),
new Historylocation(15l,14),
new Historylocation(16l,17)
);
使用list2对比list进行比,连续才能够相减.如
list 中的12l,13l和list2的12l,13l是相连续的,所以可以相减13-10=3
但是list2中的14l没有,所以需要重新计算从15l开始重新计算,而16L又是连续的所以
17-14=4;如何算出?
```
HashMap<Long, Integer> longIntegerHashMap = new HashMap<>(); for (int i = 0; i < list2.size(); i++) { Historylocation historylocation = list2.get(i); longIntegerHashMap.put(historylocation.getKey(), historylocation.getValue()); } for (int i = 0; i < list.size(); i++) { Integer integer = longIntegerHashMap.get(list.get(i).getKey()); if (i + 1 >= list.size()) { break; } Integer integer1 = longIntegerHashMap.get(list.get(i + 1).getKey()); if (integer != null && integer1 != null) { System.out.println(list.get(i + 1).getKey() + " - " + list.get(i).getKey() + " = " + (integer1 - integer)); } }
```
另一种 设置两个游标, 移动游标位置,进行计算。
######17-14=4 ?######修正.17-4=3.上述代码已经实现
==========================
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。