Java List <t>删除连续的相等元素

时间:2017-10-03 22:14:22

标签: java list

我有一个${PROJECT_SOURCE_DIR},其中Log是一个具有各种属性的Java类。

如果它们相同,我需要删除两个连续的Log对象。我定义了两个日志是相等的,如果它们的log_message相等并且它们的时间戳彼此非常接近。

一个想法是遍历列表中的每个日志并检查当前是否等于下一个。如果这是真的,那么我需要从列表中删除当前对象并继续。

我需要保持target_include_directories的顺序(我可以对列表进行排序,然后在必要时通过减少时间戳再次进行更换)。已经通过减少时间戳来排序#include <iostream> using namespace std; double NumberOfPennies(int dollars, int pennies = 0) { int totalPennies = 0; totalPennies = (dollars * 100) + pennies; cout << totalPennies; return 0; } int main() { cout << NumberOfPennies(5, 6) << endl; // Should print 506 cout << NumberOfPennies(4) << endl; // Should print 400 return 0; }

我试着这样做:

List<Log>

但我得到索引超出范围的错误。

我认为这是错的吗?还有另一种方法可以做得更好吗?

1 个答案:

答案 0 :(得分:0)

你已经有了一个迭代器 - 你应该使用它,而不是索引:

Log prev = null;
Log current = it.next();
while (it.hasNext()) {
    prev = current;
    current = it.next();
    if (current.getLogMessage().equals(next.getLogMessage())) {
        it.remove();
    }
}