목차
1. 중복 제거를 추가하는 For 루프
List<String> oldList = new ArrayList<>();
oldList.add("张三");
oldList.add("张三");
oldList.add("李四");
oldList.add("王五");
oldList.add("赵六");
List<Object> newList = Lists.newArrayList();
for (String name : oldList) {
if (!newList.contains(name)){
newList.add(name);
}
}
System.out.println("原本的集合原素"+oldList);
System.out.println("去重后的集合"+newList);
인쇄 결과는 다음과 같습니다.
2. 이중 루프 중복 제거의 경우
@Test
void contextLoads3() {
List<String> oldList = new ArrayList<>();
oldList.add("张三");
oldList.add("张三");
oldList.add("李四");
oldList.add("王五");
oldList.add("赵六");
for (int i = 0; i < oldList.size() - 1; i++) {
for (int j = oldList.size() - 1; j>1 ; j--) {
if (oldList.get(j).equals(oldList.get(i))) {
oldList.remove(j);
}
}
}
System.out.println("原本的集合原素"+oldList);
}
인쇄 결과는 다음과 같습니다.
3. 이중 루프 반복 좌표 중복 제거의 경우
@Test
void contextLoads4() {
List<String> oldList = new ArrayList<>();
oldList.add("张三");
oldList.add("张三");
oldList.add("李四");
oldList.add("王五");
oldList.add("赵六");
List<String> newList = Lists.newArrayList();
newList.addAll(oldList);
for (String name : newList) {
if (oldList.indexOf(name) != oldList.lastIndexOf(name)) {
oldList.remove(oldList.lastIndexOf(name));
}
}
System.out.println("原本的集合原素"+oldList);
}
인쇄 결과는 다음과 같습니다.
4. 중복 제거 설정
@Test
void contextLoads5() {
List<String> oldList = new ArrayList<>();
oldList.add("张三");
oldList.add("张三");
oldList.add("李四");
oldList.add("王五");
oldList.add("赵六");
List<String> newList = Lists.newArrayList(new HashSet(oldList));
System.out.println("原本的集合原素"+newList);
}
인쇄 결과는 다음과 같습니다.
5. 스트림 중복 제거
@Test
void contextLoads5() {
List<String> oldList = new ArrayList<>();
oldList.add("张三");
oldList.add("张三");
oldList.add("李四");
oldList.add("王五");
oldList.add("赵六");
List<String> collect = oldList.stream().distinct().collect(Collectors.toList());
System.out.println("原本的集合原素"+collect);
}
인쇄 결과는 다음과 같습니다.