java - 组合具有不同端点的 for 循环

标签 java for-loop

我有一个 DurationBetween 类,表示原始位置和目的地之间的旅行持续时间。该类具有三个属性:int durString origString dest

我正在尝试获取一组位置之间的持续时间。我已经为此做了计算。

我有 3 个数组列表,如下所示:

listOrig: current, dest1, dest2, dest3
listDest: dest1, dest2, dest3
listDur: 2, 3, 5, 0, 1, 3, 9, 0, 2, 3, 2, 0

listDur 通过获取从 currentdest1dest2dest3< 的持续时间来生成,然后从 dest1dest1dest2dest3,然后 dest2dest1dest2dest3 等。总共 12 个。 请注意,当原始位置与目的地相同时,持续时间 = 0。

现在我需要启动一堆 DurationBetween 类来存储 origdest 对。所以类似

DurationBetween durationBetween = new DurationBetween(2, current, dest1);
DurationBetween durationBetween = new DurationBetween(3, current, dest2);
DurationBetween durationBetween = new DurationBetween(5, current, dest3);
DurationBetween durationBetween = new DurationBetween(1, dest1, dest2);
...

我在初始化类时遇到问题,因为列表的大小不同。我现在拥有的代码为我提供了 orig 和 dest 对,但我无法让 dur 根据这些对进行相应更新。

这就是我所拥有的:

// create classes of dur, orig, dest
// one orig will go to multiple dest and have multiple dur
for (int i = 0; i < listOrig.size(); i++) {
    for (int j = 0; j < listDest.size(); j++) {
        String orig = listOrig.get(i);
        String dest = listDest.get(j);

        // DEFINITELY NOT RIGHT
        for (int k = 0; k < listDur.size(); k++) {
            int dur = Integer.parseInt(listDur.get(k));

            if (dur != 0) { // skip instances where orig and dest are the same
               DurationBetween durationBetween = new DurationBetween(dur, orig, dest);
               listDurBtwn.add(durationBetween);
            }
        }
    }
}

public class DurationBetween {
    private int dur;
    private String orig;
    private String dest;

    public DurationBetween(int dur, String orig, String dest) {
        this.dur = dur;
        this.orig = orig;
        this.dest = dest;
    }
}

最佳答案

我认为你需要用以下内容替换“绝对不正确”的部分:

    int k = (i * listDest.size()) + j;
    int dur = Integer.parseInt(listDur.get(k));
    if (dur != 0) { // skip instances where orig and dest are the same
        DurationBetween durationBetween = new DurationBetween(dur, orig, dest);
        listDurBtwn.add(durationBetween);
    }

关于java - 组合具有不同端点的 for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32171547/

相关文章:

java - 按纬度和经度的 hibernate 条件

java - 为什么 Java Reflection 找不到另一个包中类的包私有(private)构造函数?

C# for循环逐行写入

python - 将字典的键值对分配用作 for 循环中的迭代器

java - 如何以编程方式打开我在 Android 应用程序中创建的文件夹?

java - 混合 Scala 和 Java : How to get generically typed constructor parameter right?

java - 存储过程不产生结果

laravel - 在 Laravel 查询生成器中使用变量(for 循环)

java - 如何编写使用 * 打印大写字母 F 的嵌套循环

java - 为每个循环调用java内部的方法?