如何比较自己之间的列表项并删除最旧的项

时间:2015-02-03 18:41:07

标签: java list sorting

我有一个带有内容的虚拟列表:

index: 0; id:5; content:"foo"; <- oldest
index: 1; id:2; content:"bar"; <- oldest
index: 2; id:5; content: "foobar" <- new entry

我想在比较条目的列表上进行交互,当它找到匹配的id时,它会从List中删除最旧的条目。

我尝试了Java 8 distinct()方法,但它删除了最后一个条目,而不是最旧的两个oldests。

1 个答案:

答案 0 :(得分:0)

ALGO: -

1)对例如

的通用类型列表进行排序
List<YourPOJO> temp = new ArrayList<YourPOJO>();

YourPOJO类将使用setter getter方法将您提到的所有变量作为类变量。

2)通过在索引变量上的YourPOJO类上实现比较器接口来对列表进行排序。

3)现在执行操作首先将数据复制到相同类型的CopyOnArrayList列表中,然后删除该元素。

4)为什么选择CopyOnArrayList?因为遍历相同的列表并从同一列表中删除元素将抛出并发修改异常,即使您迭代Iterator,因为迭代器实际上不是线程安全的。