import java.util.*;
public class ListDistinctExample {
public static void main(String[] args) {
// 创建一个包含重复元素的List
List<String> listWithDuplicates = Arrays.asList("apple", "banana", "orange", "apple", "grape", "banana");
// 方法1: 使用LinkedHashSet去重,保留原始顺序
List<String> distinctList1 = new ArrayList<>(new LinkedHashSet<>(listWithDuplicates));
System.out.println("使用LinkedHashSet去重: " + distinctList1);
// 方法2: 使用stream()和distinct()去重
List<String> distinctList2 = listWithDuplicates.stream().distinct().toList();
System.out.println("使用Stream API去重: " + distinctList2);
// 方法3: 使用stream()和collect(Collectors.toCollection())去重并保留顺序
List<String> distinctList3 = listWithDuplicates.stream().distinct().collect(Collectors.toCollection(ArrayList::new));
System.out.println("使用Stream API和Collectors去重: " + distinctList3);
}
}
方法1:使用LinkedHashSet去重
LinkedHashSet 是一个保持插入顺序的集合,因此它不仅可以去重,还能保留原始列表中元素的顺序。listWithDuplicates 转换为 LinkedHashSet 后再转换回 ArrayList,即可得到去重后的列表。方法2:使用Stream API 和 distinct() 去重
stream() 方法将列表转换为流,distinct() 方法用于去除流中的重复元素。toList() 将流重新转换为列表。注意,toList() 返回的是不可变列表。方法3:使用Stream API 和 Collectors.toCollection() 去重并保留顺序
Collectors.toCollection(ArrayList::new) 确保结果是一个可变的 ArrayList,并且保留了原始顺序。以上三种方法都可以有效地对 List 进行去重操作。
上一篇:java list 对象排序
下一篇:java list判空
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站