IndexOutOfBoundsException Cinema

时间:2017-06-25 20:46:29

标签: java

我这里有一个小问题,我应该制作这个方法:

comprarEntrada:从大厅本身购买分配给会话的列和行的票证的方法。他们的购买是在对象类型Sesion中注册的。

我被告知要制作电影,这是我的方法代码:

public class Sala {

    private String pelicula;
    private ArrayList<Sesion> sesiones;
    private int columnas;
    private int filas;

    public Sala (String pelicula, String [] horaSesiones, int filas, int columnas){ 
        this.pelicula = pelicula;
        this.sesiones = new ArrayList <Sesion>(); 
        this.filas = filas;
        this.columnas = columnas;
    }

    public void comprarEntrada (int sesion, int fila, int columna){
        if(this.sesiones.get(sesion-1).getEstadoAsientos()[fila][columna]==0){
        this.sesiones.get(sesion-1).comprarEntrada(fila, columna);
    }
} 

这笔交易是我不确定我是否已经正确完成,我想这不是因为它抛出了这个例外:

    Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
    at java.util.ArrayList.rangeCheck(Unknown Source)
    at java.util.ArrayList.get(Unknown Source)
    at cine.Sala.comprarEntrada(Sala.java:42)
    at predeterminado.TestVentaEntradasSala.main(TestVentaEntradasSala.java:38)

所以,如果你能在这里帮助我,我会很感激。

2 个答案:

答案 0 :(得分:0)

当您访问不存在的数组或集合的元素时,会发生IndexOutOfBoundsException。换句话说,您访问的索引大于数组的lenght-1或您馆藏的size-1

在你的代码中,这取决于你如何使用'Sala'课程。您似乎没有设置或不添加任何元素到''sessiones'数组列表并尝试获取它的第一个元素。

答案 1 :(得分:0)

sesiones列表没有值(大小:0),所以你不能得到第一个元素(索引:0)