列表与重复项没有重复

时间:2013-02-26 21:21:13

标签: java collections

我有一个包含重复值的列表。

List<valFile> isList = valBo.findId();

isList的值类似于{100,100,100,102,105,105}

我想删除这些重复项,并使用相同的列表,没有重复项。我试过设置,但不知道如何使用相同的列表,没有重复。

2 个答案:

答案 0 :(得分:1)

创建LinkedHashSet以维护订单并添加列表中的所有项目。重复项将被丢弃:

Set<valFile> set = new LinkedHashSet<valFile>(isList);

然后将其添加回列表:

List<valFile> listWithoutDuplicates = new ArrayList<valFile>(set);

答案 1 :(得分:1)

我会使用一个集合并转储回列表。

List<valFile> unique = new ArrayList<valFile>(new HashSet<valFile>(islist));
Collections.sort(unique);

或者如果你有一个好的比较器,你可以使用TreeSet

Set<valFile> unique = new TreeSet<valFile>(isList);

如果你绝对必须使用相同的列表(也许是因为某处有其他参考),你最好的办法是清除它。

List<valFile> unique = new ArrayList<valFile>(new HashSet<valFile>(islist));
Collections.sort(unique);
isList.clear();
isList.addAll(unique);