자바 List 중복 요 소 를 제거 하 는 몇 가지 방법(소결)

LinkedHashSet 을 사용 하여 arraylist 의 중복 데 이 터 를 삭제 합 니 다(질서 있 음)
링크 드 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 +
            '}';
      }
    }
    자바 리스트 에서 중복 요 소 를 제거 하 는 몇 가지 방법(소결)에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 관련 자바 리스트 에서 중복 요 소 를 제거 하 는 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 부 탁 드 리 겠 습 니 다!

    좋은 웹페이지 즐겨찾기