자바 List 중복 요 소 를 제거 하 는 몇 가지 방법(소결)
링크 드 HashSet 은 Array List 에서 중복 데 이 터 를 삭제 하 는 가장 좋 은 방법 입 니 다.LinkedHashSet 은 내부 에서 두 가지 일 을 완성 합 니 다.
List<String> words= Arrays.asList("a","b","b","c","c","d");
HashSet<String> set=new LinkedHashSet<>(words);
for(String word:set){
System.out.println(word);
}
HashSet 로 무 게 를 줄 이기(순서 없 음)
// List
List<String> words= Arrays.asList("a","b","b","c","c","d");
// :
for(String word:words){
set.add(word);
}
for(String word:set){
System.out.println(word);
}
자바 8 의 새로운 기능 stream 을 사용 하여 List 무 게 를 제거 합 니 다.arraylist 에서 중복 항목 을 삭제 하려 면 자바 8 stream api 를 사용 할 수 있 습 니 다.steam 의 distinct()방법 을 사용 하여 서로 다른 데이터 로 구 성 된 흐름 을 되 돌려 주 고 대상 의 equals()방법 을 통 해 비교 합 니 다.
모든 지역 데이터 List 를 수집 하여 Collectors.toList()를 사용 합 니 다.
자바 프로그램 은 set 를 사용 하지 않 은 상태 에서 자바 의 arraylist 에서 중복 항목 을 삭제 하 는 데 사 용 됩 니 다.
List<String> words= Arrays.asList("a","b","b","c","c","d");
words.stream().distinct().collect(Collectors.toList()).forEach(System.out::println);
List 의 contains 방법 으로 반복 하기
List<String> list= new ArrayList<>();
for (String s:words) {
if (!list.contains(s)) {
list.add(s);
}
}
주:데이터 요소 가 실체 클래스 일 때 equals()와 hashCode()방법 을 추가 로 다시 써 야 합 니 다.예 를 들 면:
학 번 을 근거 로 판단 중복
public class Student {
String id;
String name;
int age;
public Student(String id, String name, int age) {
this.id = id;
this.name = name;
this.age = age;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Student student = (Student) o;
return Objects.equals(id, student.id);
}
@Override
public int hashCode() {
return id != null ? id.hashCode() : 0;
}
@Override
public String toString() {
return "Student{" +
"id='" + id + '\'' +
", name='" + name + '\'' +
", age=" + age +
'}';
}
}
자바 리스트 에서 중복 요 소 를 제거 하 는 몇 가지 방법(소결)에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 관련 자바 리스트 에서 중복 요 소 를 제거 하 는 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 부 탁 드 리 겠 습 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.