如何替换LogoList中的子列表

时间:2014-09-15 20:42:02

标签: java netlogo

我有一个像:

的logolist
[[(turtle 0) 91.21412595730608] [(turtle 1) 76.89996795823208] [(turtle 2) 72.61621123351073] [(turtle 3) 71.23366936658486] [(turtle 5) 69.5448418866364]]

我需要用新的LogoList替换其中一个子列表,比如我必须替换:

[(turtle 0) 91.21412595730608]

使用:

[(turtle 0) 43.4323424]

我正在尝试使用此代码进行更改:

private LogoList replaceItem(LogoList euclideanDistance, LogoListBuilder innerEuclDist, Turtle s) {
    ListIterator<Object> listIterator = euclideanDistance.listIterator();
    int idx = 0;
    while (listIterator.hasNext()) {
        LogoList next = (LogoList) listIterator.next();
        Turtle get = (Turtle) next.get(0);
        if (get.equals(s)) {
            return euclideanDistance.replaceItem(idx, innerEuclDist.toLogoList());
        }
        idx += 1;
    }
    return null;
}

但我想知道是否有更聪明/更快的解决方案。

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

您的代码对我来说很好。我没有任何改进的余地。