大家好,也许我的疑问很简单,但无法解决。 我的问题如下: 我有一个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
答案 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);
}
}