我有一个包含重复值的列表。
List<valFile> isList = valBo.findId();
isList 的值类似于 {100, 100, 100, 102, 105, 105}
我想删除这些重复项并使用没有重复项的相同列表。我尝试了 set 但不知道如何使用没有重复的相同列表。
我有一个包含重复值的列表。
List<valFile> isList = valBo.findId();
isList 的值类似于 {100, 100, 100, 102, 105, 105}
我想删除这些重复项并使用没有重复项的相同列表。我尝试了 set 但不知道如何使用没有重复的相同列表。
创建一个LinkedHashSet
以维护排序并添加列表中的所有项目。重复的将被丢弃:
Set<valFile> set = new LinkedHashSet<valFile>(isList);
然后将其添加回列表:
List<valFile> listWithoutDuplicates = new ArrayList<valFile>(set);
我会使用一个集合并转储回一个列表。
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);