如何从列表中删除重复的对象

时间:2012-05-28 04:40:18

标签: java arraylist

我在面试中被要求从列表中删除重复的学生对象,其中学生对象可能包含不同的属性,条件是我不应该使用set或hashmap。

5 个答案:

答案 0 :(得分:1)

对ArrayList进行排序并循环遍历。但是你如何定义重复的对象?相同的参考或具有相同的属性?

答案 1 :(得分:1)

  1. 对列表进行排序。
  2. 遍历列表,检查当前对象是否等于其邻居。
  3. 这需要O(n * log(n))对列表进行排序,O(n)遍历排序列表。

    因此,总运行时复杂度为O(n * log(n))+ O(n)= O(n * log(n))

答案 2 :(得分:0)

您可以通过比较学生对象的参考来检查它。

答案 3 :(得分:0)

在列表中没有直接删除重复的方法。删除重复的最快方法是集合。在要删除重复的列表中,您将不得不重写hashcode()和equals()方法,然后必须迭代一个对象的整个列表。

答案 4 :(得分:0)

可能你的面试官试图将“java.util.Set”作为你的回答,不允许重复的对象。这是您可以期待的典型标准问题。