gpt4 book ai didi

java - 需要从列表中删除重复项

转载 作者:行者123 更新时间:2023-12-02 11:18:33 32 4
gpt4 key购买 nike

我在 ArrayList 中有一个对象列表。我想根据旧的 paymentDate 删除列表中的重复对象。举个例子,如果成员 (Vishal) 重复两次,我需要删除基于旧的 Vishal 对象列表中的 paymnetDate。

[{CreditCardNum,name,Amount,DueDate,PaymentDate}]

masterlist = [{4123456789123456,Vishal,80000,03/06/2015,07/06/2015},
{4123456789123456,Vivek,80000,07/06/2015,11/06/2015},
{4123456789123456,Vishal,80000,03/06/2015,09/06/2015}];


Removable Object from List =
{4123456789123456,Vishal,80000,03/06/2015,07/06/2015}

List<CreditcardVo> masterlist =new ArrayList<CreditcardVo>();
public class CreditCardVO {
public String creditNumber;
public String name;
public int amount;
public Date dueDate;
public Date paymentDate;
public String getCreditNumber() {
return creditNumber;

}
public void setCreditNumber(String creditNumber) {
this.creditNumber = creditNumber;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAmount() {
return amount;
}
public void setAmount(int amount) {
this.amount = amount;
}
public Date getDueDate() {
return dueDate;
}
public void setDueDate(Date dueDate) {
this.dueDate = dueDate;
}
public Date getPaymentDate() {
return paymentDate;
}
public void setPaymentDate(Date paymentDate) {
this.paymentDate = paymentDate;``
}
}

最佳答案

以下是您可以用来执行此操作的算法:首先,您需要为 ArrayList 中的每个对象提供一个唯一标识符。如果您确定该名称不重复,则标识符可以为我提供该名称。

  • 第 1 步:创建一个空映射,其中键是对象标识符,值是对象本身
  • 第 2 步:对于 ArrayList 中的每个元素:
    • 检查 map 中是否包含对象的标识符
    • 如果是,则获取与 map 中该标识符关联的值val,并将其日期与当前对象curr的日期进行比较:
      • 如果 val 具有最新日期,则不执行任何操作
      • 如果 curr 具有最新日期,则调用 map.put(identifier, curr) 更新 map 中的值
    • 如果没有,则map.put(identifier, curr)将当前对象添加到 map

最后,结果将是 map 的值。您可以通过使用 map.values()

来获得它

关于java - 需要从列表中删除重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50087766/

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