0

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

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

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

我想删除这些重复项并使用没有重复项的相同列表。我尝试了 set 但不知道如何使用没有重复的相同列表。

4

2 回答 2

1

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

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

然后将其添加回列表:

List<valFile> listWithoutDuplicates = new ArrayList<valFile>(set);
于 2013-02-26T21:23:09.027 回答
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);
于 2013-02-26T21:23:23.637 回答