从另一个类访问一个数组列表以在方法中使用

时间:2016-05-30 19:39:55

标签: java object arraylist methods

我试图从另一个类中获取一个对象的arraylist来显示它一个修改它(在ArrayList中删除对象)所以原来的ArrayList也必须被修改...我已经尝试了以下方法成功完成。

类属性

private int number; //user imput

方法

public String DisplayObj() {
    String result;
    FormularioPedido form = new FormularioPedido(); //instance of the other class so I can access the arrayList
    ArrayList<Pedido> lista = form.getListaPedido();

    number -= 1;
    Pedido pedido = lista.get(number);
    result = pedido.getTamanio() + pedido.getIngredientesToString()
            + pedido.getBebida() + pedido.getExtra() + pedido.getCelular();
    return result;
}

public void deleteObj() {

    FormularioPedido form = new FormularioPedido();
    List<Pedido> lista = form.getListaPedido();

    number -= 1;
    lista.remove(number);

}

2 个答案:

答案 0 :(得分:0)

您需要将lista存储为Class attribut。 这样,您显示的列表将与您要删除的列表相同。

目前,它会分离列表,每次调用显示方法时都会重新创建一个列表。

private int number; //user imput
private FormularioPedido form  = new FormularioPedido();

public String DisplayObj() {
    String result;
    ArrayList<Pedido> lista = form.getListaPedido();

    number -= 1;
    Pedido pedido = lista.get(number);
    result = pedido.getTamanio() + pedido.getIngredientesToString()
            + pedido.getBebida() + pedido.getExtra() + pedido.getCelular();
    return result;
}

public void deleteObj() {

    List<Pedido> lista = form.getListaPedido();

    number -= 1;
    lista.remove(number);
}

当然,您需要在删除或显示之前检查列表大小,以避免异常。

答案 1 :(得分:0)

每次编写new FormularioPedido()时,都会创建一个新列表(在调用form.getListaPedido()时返回)。你应该多考虑一下你的班级设计。例如,列表可以是类属性,您可以选择相同的列表实例。