gpt4 book ai didi

java - 将列表中的重复数据与输入数据进行比较

转载 作者:行者123 更新时间:2023-12-02 01:04:17 25 4
gpt4 key购买 nike

我想使用我输入的数据检查列表中的重复 ID,然后增加列表中的 qty 变量。如果是新数据,它会添加一个新列表。

这是我的代码

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);
}
}
}
}

即使我输入新数据,它总是会增加旧数据的数量,并且不会添加新数据(基本上总是以“else”部分结束)。

输入数据的代码

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);

巴朗级

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;
}

@Override
public String toString() {
return "Barang{" + "id=" + id + ", name=" + name + ", qty=" + qty + '}';
}

鼓荡类

public class Gudang {
public static int id;
private int location;
public List<Barang> list = new ArrayList<Barang>();

public Gudang(int id, int location) {
Gudang.id = id;
this.location = location;
}

public int getId() {
return id;
}

public int getLocation() {
return location;
}

public List<Barang> getList() {
return list;
}

public void setId(int id) {
this.id = id;
}

public void setLocation(int location) {
this.location = location;
}

public void setList(List<Barang> list) {
this.list = list;
}

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);
}
}
}
System.out.println("Size List = "+list.size());
}

public void duplicate(List<Barang> list2)
{
this.list.addAll(list2);

}
public void clearBarang(){
this.list.clear();
}

public void display(){
for(Barang barang: this.list){
System.out.println(barang);
}
}

IE : 如果我有 id=1 和 qty=1,然后输入 id=2 和 qty=2 的新数据,最终结果将是 id=2 和 qty=3。列表中没有添加新数据。

最佳答案

尝试使用 .equals 来比较数据是否存在于列表中

关于java - 将列表中的重复数据与输入数据进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57747059/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com