java 重复对象_Java根据条件查找重复项并覆盖/更新重复对象

我有一个包含以下示例数据的电子表格。

780sq.png

在Java中,使用jxl,我将数据读入名为MergeObject.java的自定义对象中。此类是一个简单的POJO,其中包含电子表格中标题的列映射。阅读完电子表格后,我有一个MergeObjects的Arraylist。

我不想使用Set,因为我想保留重复项。我想循环列表arraylist并找出列表中的重复项。为了符合重复条件,两个条目需要具有相同的名字和姓氏。例如,行2,3,4是重复的,行5,6是重复的,行7,8是重复的。我已经重写了equals方法来定义它。

这是我的问题。在识别出重复的行集(2,3,4),(5,6),(7,8)之后,我将定义哪一行是优越的。例如,我可能会认为具有“正常评论”的评论部分可能是优秀副本。在确定之后,我想用它的ID值填充“劣质复制品”的“重复ID”列,然后用“优先复制”行的ID替换“劣质复制品”的ID列。

因此,第4行的重复ID需要填充82046555,第4行的ID需要替换为82046565.第2,3行不会发生任何变化。

我需要使用哪些数据结构?我尝试了下面的代码,但我无法在列表中获得重复项。

任何指针都将非常感激。

List> superDuperList = new ArrayList>();

//使用JXL,在循环中,我将行填充到名为saoList的arraylist中。

列出saoList = new ArrayList();

ArrayList innerList = new ArrayList();

MergeObject lastItem = null;

for (MergeObject item : saoList)

{

if(null == lastItem)

{

innerList.add(item);

lastItem = item;

}

else

{

if(item.equals(lastItem))

{

innerList.add(item);

}

else

{

superDuperList.add(innerList);

innerList = new ArrayList();

innerList.add(item);

lastItem = item;

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值