如何在列表中获取唯一值

2022-09-03 17:22:23

我有2个带有数据的文本文件。我正在读取这些文件,并将每个文件一列的数据放在.BufferReaderList<String>

我在每个数据中都复制了数据,但是我需要在第一个中具有唯一的数据来面对第二个中的重复数据。ListList

如何从 中获取唯一值?List


答案 1

它可以通过使用中间体来完成一行:Set

List<String> list = new ArrayList<>(new HashSet<>(list));

在 java 8 中,在流上使用:distinct()

List<String> list = list.stream().distinct().collect(Collectors.toList());

或者,根本不使用列表;只需从一开始就使用一个 Set(如 HashSet)来表示您只想保存唯一值的集合。


答案 2

将 转换为哈希集ArrayList

List<String> listWithDuplicates; // Your list containing duplicates
Set<String> setWithUniqueValues = new HashSet<>(listWithDuplicates);

如果由于某种原因,您希望在之后将集合转换回列表,则可以,但很可能不需要。

List<String> listWithUniqueValues = new ArrayList<>(setWithUniqueValues);