我有一些数据存储在List<List<String>>
以便获取我使用此方法的数据
private static void finalResult(List<List<String>> resultList) {
for (List<String> listOFResults : resultList) {
if(listOFResults.get(0).equals("v1")){
System.out.println("Vehicle is :: "+listOFResults);
}
}
}
我的输出是这样的
Vehicle is :: [v1, route1, 1.4, destination1]
Vehicle is :: [v1, route2, 2.3, destination1]
Vehicle is :: [v1, route3, 1.2, destination2]
Vehicle is :: [v1, route4, 3.4, destination2]
我的查询是添加索引值 2i.e 1.4,2.3,1.2,3.4
但添加必须在
`route1 + route4` = 1.4 + 3.4
添加后我想将两个列表的值存储在一个公共列表中,
例如
value is :: [v1,route1,destination1,route4,destination2,4.8];
value is :: [v1,route2,destination1,route4,destination2,5.7];
value is :: [v1,route3,destination2,route4,destination1,4.6];
这里我有 3 种可能的方式到达我的目的地 这里我正在过滤我的车辆 1. 现在我的输出是我的路线细节和旅行时间。我想添加 2 条路线进行比较,哪些路线可以更快地覆盖两个目的地。所以可能的方式可以是Route1 +Route4,Route2+Route4 和Route3+Route4
如何实现这一目标。
根据我对您问题的假设是否正确,这是一个可能的解决方案:
public static void main(String[] args) {
List<String> a1 = Arrays.asList("v1", "route1", "1.4", "destination1");
List<String> a2 = Arrays.asList("v1", "route2", "2.3", "destination1");
List<String> a3 = Arrays.asList("v2", "route2", "3.0", "destinationx");
List<String> a4 = Arrays.asList("v1", "route3", "1.2", "destination2");
List<String> a5 = Arrays.asList("v1", "route4", "3.4", "destination2");
List<List<String>> all = List.of(a1, a2, a3, a4, a5);
List<String> str = all.stream().filter(l -> "v1".equals(l.get(0)))
.map(l -> {
double v = Double.parseDouble(l.get(2)) + Double.parseDouble(a5.get(2));
return String.format("%s,%s,%s,%s,%s,%1.1f", l.get(0), l.get(1), l.get(3), "route4", a5.get(3), v);
})
.collect(Collectors.toList());
str.forEach(System.out::println);
}
这将打印出以下内容:
v1,route1,destination1,route4,destination2,4.8
v1,route2,destination1,route4,destination2,5.7
v1,route3,destination2,route4,destination2,4.6
v1,route4,destination2,route4,destination2,6.8
这段代码有什么作用?
但老实说:最好的办法是使用与您的数据模型对应的字段创建适当的普通旧 Java 对象 (POJO)。像我所做的那样洗牌从来都不是最好的主意。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句