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 静态代码块
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站