我想使用我輸入的數(shù)據(jù)檢查列表中的重復(fù) ID,然后增加列表中的 qty 變量。如果是新數(shù)據(jù),它會(huì)添加一個(gè)新列表。這是我的代碼public void addBarang(Barang barang){ int id_barang = barang.getId(); if(this.list.isEmpty()) { list.add(barang); } else { for(int i=0;i<list.size();i++) { if(list.get(i).getId() != id_barang) { list.add(barang); System.out.println("Added"); break; } if(list.get(i).getId() == id_barang) { int new_qty = list.get(i).getQty()+barang.getQty(); list.get(i).setQty(new_qty); } } }}即使我輸入新數(shù)據(jù),它總是會(huì)增加舊數(shù)據(jù)的數(shù)量,并且不會(huì)添加新數(shù)據(jù)(基本上總是以“else”部分結(jié)束)。輸入數(shù)據(jù)的代碼Gudang gudang1 = new Gudang(1,1);System.out.println("ID: ");int id = input.nextInt();System.out.println("Jumlah: ");int qty = input.nextInt();System.out.println("Nama: ");String name = input.next();Barang barang = new Barang(id,name,qty);gudang1.addBarang(barang);類別項(xiàng)目public class Barang {public static int id;private String name;private int qty;public Barang(int id, String name, int qty) { this.id = id; this.name = name; this.qty = qty;}public Barang(){};public int getId() { return id;}public String getName() { return name;}public int getQty() { return qty;}public void setId(int id) { this.id = id;}public void setName(String name) { this.name = name;}public void setQty(int qty) { this.qty = qty;}@Overridepublic String toString() { return "Barang{" + "id=" + id + ", name=" + name + ", qty=" + qty + '}';}
3 回答

慕標(biāo)琳琳
TA貢獻(xiàn)1830條經(jīng)驗(yàn) 獲得超9個(gè)贊
請(qǐng)檢查舊數(shù)據(jù)和新數(shù)據(jù)之間的 id 是否重復(fù)。
如果您的 id 是唯一的,那么您可以利用 Map 并將 id 作為鍵,將 barang 對(duì)象作為值。每當(dāng)您成功查找對(duì)象的地圖增量數(shù)量字段時(shí)。

Qyouu
TA貢獻(xiàn)1786條經(jīng)驗(yàn) 獲得超11個(gè)贊
起初我猜我會(huì)改變:
if(list.get(i).getId() != id_barang)
到:
if(list.get(i).getId() != barang.getId())
也許 id_barang 與 barang 對(duì)象中存儲(chǔ)的 id 不同。
添加回答
舉報(bào)
0/150
提交
取消