Android如何将同一个对象与ArrayList相加

时间:2015-10-07 20:00:20

标签: java android arraylist

大家好,也许我的疑问很简单,但无法解决。 我的问题如下: 我有一个ArrayList对象,这些对象有数字,名称和值。 我想在数字和名称相同时将这些对象的值相加。 我想创建一个新的ArrayList来增加值,但无济于事。

我的课程:

    private class ItemAdubacao {
    float quantidadeProduto;
    String produto;
    int tanque_id;

    public float getQuantidadeProduto() {
        return quantidadeProduto;
    }

    public void setQuantidadeProduto(float quantidadeProduto) {
        this.quantidadeProduto = quantidadeProduto;
    }

    public String getProduto() {
        return produto;
    }

    public void setProduto(String produto) {
        this.produto = produto;
    }


    public int getTanque_id() {
        return tanque_id;
    }

    public void setTanque_id(int tanque_id) {
        this.tanque_id = tanque_id;
    }

}

我在ArrayList中添加了这个类的对象。 我想要的是通过这个ArrayList检查具有Tanque_id和produto等于对quantdadeProduto求和的对象。 正如我所说,我以为我会创建一个新的ArrayList并添加已添加的对象。例如:

    public void finalizar() {
    Adubacao adubacao = new Adubacao();
    adubacaoArrayList = new ArrayList<>();
    for (ItemAdubacao itemAdubacao : itemAdubacaoArrayList) {
        if () {

        }

    }
    adubacaoArrayList.add(adubacao);
}

但不知道如何IF

1 个答案:

答案 0 :(得分:0)

我解决了我的问题,不是简单的问题IF 首先在我的班级中添加了布尔等于

     public boolean equals(Object o) {
        ItemAdubacao adubacao = (ItemAdubacao) o;
        if (this.getTanque_id() == adubacao.getTanque_id() && (this.getProduto().equals(adubacao.getProduto()))) {
            return true;
        }
        return false;
    }

然后我创建了一个ArrayList来分离重复的对象并添加值的总和

     public void finalizar() {
    ArrayList<ItemAdubacao> itensIguaisArrayList;
    itensIguaisArrayList = new ArrayList<>();
    adubacaoArrayList = new ArrayList<>();

    for (ItemAdubacao itemAdubacao : itemAdubacaoArrayList) {
        if (!itensIguaisArrayList.contains(itemAdubacao)) {
            itensIguaisArrayList.add(itemAdubacao);
        }
    }
    for (int i = 0; i < itensIguaisArrayList.size(); i++) {
        float soma = 0;
        for (ItemAdubacao linha : itemAdubacaoArrayList) {
            if (linha.equals(itensIguaisArrayList.get(i))) {
                soma += linha.getQuantidadeProduto();
            }
        }
        itensIguaisArrayList.get(i).setQuantidadeProduto(soma);
    }
}