import java.util.*;
import java.util.stream.Collectors;
/**
* 集合去重方法
*/
public class CollectionDistinct {
public static void main(String[] args) {
List list = Arrays.asList(1, 2, 3, 4, 5, 6, 1, 5, 5);
list.forEach(i -> System.out.print(i + " "));
System.out.println(" - 原集合");
HashSetDistinct(list).forEach(System.out::print);
System.out.println(" - 通过HashSet自动去重");
SteamDistinct(list).forEach(System.out::print);
System.out.println(" - 使用steam去重");
ListContainsDistinct(list).forEach(System.out::print);
System.out.println(" - 使用list contains去重");
}
/**
* 使用 steam 去重(需要 Java 1.8或以上)
*
* @param data
* @return
*/
static List SteamDistinct(List data) {
return (List) data.stream().distinct().collect(Collectors.toList());
}
/**
* 通过 HashSet 自动去重
*
* @param data
* @return
*/
static List HashSetDistinct(List data) {
List list = new ArrayList();
list.addAll(new HashSet<>(data));
return list;
}
/**
* 使用 list contains 判断去重
*
* @param data
* @return
*/
static List ListContainsDistinct(List data) {
List list = new ArrayList();
for (Object datum : data) {
if (!list.contains(datum)) list.add(datum);
}
return list;
}
}
list集合 去重的3个方法
于 2021-03-14 13:46:16 首次发布