如何在不使用java中的set的情况下从List中删除重复项

时间:2016-04-12 10:50:33

标签: java

这里我有包含重复值的列表。但我需要的是,列表不应包含重复值。我尝试了堆栈溢出的许多解决方案。但没有得到任何解决方案。下面的代码是我尝试过的代码之一。但我没有得到解决方案。

List<ReportsBean> list = rutils.getYearsReport(year);
list=========before=====5
LinkedHashSet<ReportsBean> lhs = new LinkedHashSet<ReportsBean>(list);
list.clear();
list.addAll(lhs);
list=========after=====5

在相同列表大小之前和之后5。 请任何人帮助我。

1 个答案:

答案 0 :(得分:1)

我使用以下代码进行了测试,它就像一个魅力:

List<String> list = new ArrayList<>(Arrays.asList("a", "b", "a"));
LinkedHashSet<String> lhs = new LinkedHashSet<>(list);
list.clear();
list.addAll(lhs);
System.out.println(list);

我会说equals()的{​​{1}}方法没有或被错误地覆盖。 (顺便说一句。如果覆盖ReportsBean,请不要忘记覆盖hashCode()