如何添加列表列表的元素并生成新列表

维普尔·辛格

我有一些数据存储在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

这段代码有什么作用?

  1. 它过滤“v1”元素
  2. 执行计算并以您指定的格式创建字符串
  3. 将这些字符串收集到一个列表中

但老实说:最好的办法是使用与您的数据模型对应的字段创建适当的普通旧 Java 对象 (POJO)。像我所做的那样洗牌从来都不是最好的主意。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章