1.Stream去重
list = list.stream().distinct().collect(Collectors.toList());
2.contain方式
List<Integer> newList = new ArrayList<>(list.size());
list.forEach(i -> {
if (!newList.contains(i)) {
newList.add(i);
}
});
System.out.println("去重集合:" + newList);
3.迭代器
Iterator<Integer> iterator = list.iterator();
while (iterator.hasNext()) {
Integer item = iterator.next();
// 如果存在两个相同的值
if (list.indexOf(item) != list.lastIndexOf(item)) {
iterator.remove();
}
}
System.out.println("去重集合:" + list);
4.HashSet去重
HashSet<Integer> set = new HashSet<>(list);
5.LinkedHashSet去重
LinkedHashSet<Integer> set = new LinkedHashSet<>(list);
6.list实体类判断是否存在重复
long distinctNum = meetingUserList.stream().map(MediationMeetingUseRequestDTO::getMobilePhone).distinct().count();
if (distinctNum != meetingUserList.size()) return APIResult.failed(APIResultCodeEnums.ILLEGAL_PARAMETER, "手机号存在重复");
7.list实体类属性存在的重复值为那个
Map<String, Long> mapgroup = meetingUserList.stream().collect(Collectors.groupingBy(s -> s.getMobilePhone(), Collectors.counting()));
List<Object> collect3 = mapgroup.keySet().stream().filter(key -> mapgroup.get(key) > 1).collect(Collectors.toList());
if (!CollectionUtils.isEmpty(collect3)) return APIResult.failed(APIResultCodeEnums.ILLEGAL_PARAMETER, "手机号存在重复,重复的手机号为:" + collect3);