在给出以下代码的情况下,如何访问“分数”的最后一个元素中“行”中的最后一个元素?
/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);
答案 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
就在那里!