如何访问嵌套的ArrayList Java的最后一个元素?

时间:2018-07-12 11:12:34

标签: java arraylist nested

在给出以下代码的情况下,如何访问“分数”的最后一个元素中“行”中的最后一个元素?

/R/EXPORT

访问“分数”中的最后一个元素很容易:

import java.util.ArrayList;

public class Tube {

    // Make Tube a singleton class
    private static Tube instance = new Tube();
    private Tube() { }
    public static synchronized Tube getInstance() {
        return instance;
    }

    public ArrayList<Fraction> fractions = new ArrayList<Fraction>();
}

class Fraction {
    public ArrayList<Line> lines = new ArrayList<Line>();
}

public class Line {
    public Point start;
    public Point end;

    public Line(Point from, Point to) {
        start = from;
        end = to;
    }
}

但是如何访问“分数”的最后一个元素中“行”的最后一个元素?

Tube tube = Tube.getInstance();
Fraction fraction = tube.fractions.get(tube.fractions.size() - 1);

2 个答案:

答案 0 :(得分:2)

对行列表执行相同操作:

Tube tube = Tube.getInstance();
List<Line> lastFractionLines = tube.fractions.get(tube.fractions.size() - 1).lines;
Line lastLine = lastFractionLines.get(lastFractionLines.size() - 1);

也请尝试将您的字段设为私有并使用getter。

答案 1 :(得分:0)

在写这篇文章时我发现了这一点,并认为我会分享我的知识。

我认为这不能像我第一次尝试的那样在一行中完成,但是如果我错了,请更正我。首先创建一个包含“ fractions”最后一个元素的Fraction对象。然后使用该对象访问“行”的最后一个元素。

Fraction fraction = tube.fractions.get(tube.fractions.size() - 1).lines.get(tube.fractions.get(tube.fractions.size - 1)... // and you get an evil spiral

就在那里!