Nic*_*ada 5 java arraylist duplicate-removal
我有一个ArrayList,它包含一个类的元素Event.Event有两个属性,Name和Timestamp.该列表现在显示所有事件.我想删除具有相同名称但不同时间戳的重复项,并将它们放在另一个列表中.这样,用户可以单击具有该名称的事件,然后选择日期.
我已经在我的应用程序中覆盖了函数equals(比较名称和时间戳)以及其他一些功能.
我怎么解决这个问题?
Jor*_*lla 22
如果您已经拥有自己的equals方法,则无法使用Hash集合.您必须手动检查它实现嵌套循环:
List<Event> allEvents = // fill with your events.
List<Event> noRepeat = new ArrayList<Event>();
for (Event event : allEvents) {
boolean isFound = false;
// check if the event name exists in noRepeat
for (Event e : noRepeat) {
if (e.getName().equals(event.getName()) || (e.equals(event))) {
isFound = true;
break;
}
}
if (!isFound) noRepeat.add(event);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13585 次 |
| 最近记录: |