我有这个列表,它是GrossBalanceDtlsVO类的集合。
GrossBalanceDtlsVO类包含以下字段:
private Long customerID = null;
private BigDecimal instAmount = BigDecimal.ZERO;
private BigDecimal instBalanceAmount = BigDecimal.ZERO;
private BigDecimal instRedemptionAmt = BigDecimal.ZERO;
private Long instTxnCnt = null;
private Date monthEndDt = null;
....
....
List<GrossBalanceDtlsVO> grossDetailsVO2 = getPCCustomerDetails(customerID);
此列表包含重复数据。例如:
customerID=1000033195, monthEndDt=2016-05-31, recMonthNo=9, recMonthlyLimit=100, recBalanceAmt=100, recMonthlyRedemption=0, recRollOverEligibility=0, txnId=null, instTxnCnt=null, instAmount=0, instBalanceAmount=0, instRedemptionAmt=0]
customerID=1000033195, monthEndDt=2016-06-30, recMonthNo=10, recMonthlyLimit=100, recBalanceAmt=100, recMonthlyRedemption=0, recRollOverEligibility=0, txnId=null, instTxnCnt=null, instAmount=0, instBalanceAmount=0, instRedemptionAmt=0]
customerID=1000033195, monthEndDt=2016-07-31, recMonthNo=11, recMonthlyLimit=100, recBalanceAmt=100, recMonthlyRedemption=0, recRollOverEligibility=0, txnId=null, instTxnCnt=null, instAmount=0, instBalanceAmount=0, instRedemptionAmt=0]
customerID=1000033195, monthEndDt=2016-05-31, recMonthNo=9, recMonthlyLimit=100, recBalanceAmt=100, recMonthlyRedemption=0, recRollOverEligibility=0, txnId=null, instTxnCnt=null, instAmount=0, instBalanceAmount=0, instRedemptionAmt=0]
customerID=1000033195, monthEndDt=2016-06-30, recMonthNo=10, recMonthlyLimit=100, recBalanceAmt=100, recMonthlyRedemption=0, recRollOverEligibility=0, txnId=null, instTxnCnt=null, instAmount=0, instBalanceAmount=0, instRedemptionAmt=0]
customerID=1000033195, monthEndDt=2016-07-31, recMonthNo=11, recMonthlyLimit=100, recBalanceAmt=100, recMonthlyRedemption=0, recRollOverEligibility=0, txnId=null, instTxnCnt=null, instAmount=0, instBalanceAmount=0, instRedemptionAmt=0]
现在我的问题是如何从此列表中删除这些重复数据?
答案 0 :(得分:1)
按给定条件对它们进行排序,迭代它们并检查前一个元素是否等于当前元素,如果为true - 将它们推入单独的列表/数组中,然后迭代此列表/数组并从列表中删除项目。
注意:你应该编写自己的对象比较器。
为了将来的使用,如果你想拥有不同的集合 - 请使用集合。
答案 1 :(得分:0)
您可以将列表放入Set中,并将此Set设置为新列表。
List<GrossBalanceDtlsVO> grossDetailsVO2 = getPCCustomerDetails(customerID);
Set<GrossBalanceDtlsVO> grossDetailsVO2Set = new HashSet<>(grossDetailsVO2);
List<GrossBalanceDtlsVO> grossDetailsVO2WithoutDuplicates = new ArrayList<>(grossDetailsVO2Set);