Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java의 ArrayList 객체에서 중복 요소를 제거하는 방법은 무엇입니까?

<시간/>

인터페이스 세트는 중복 요소를 허용하지 않습니다. 이 인터페이스의 add() 메서드는 요소를 수락하고 Set 개체에 추가합니다. 추가에 성공하면 이 메서드를 사용하여 기존 요소를 추가하려고 하면 true를 반환하고 추가 작업은 false를 반환하지 않습니다.

따라서 ArrayList 개체의 중복 요소를 제거하려면 -

  • 필요한 ArrayList를 가져오거나 생성합니다.

  • 빈 집합 개체를 만듭니다.

  • ArrayList 개체의 모든 요소를 ​​추가하여 목표를 설정하십시오.

  • clear() 메서드를 사용하여 ArrayList의 내용을 지웁니다.

  • 이제 addAll() 메서드를 사용하여 set 객체의 내용을 ArrayList에 다시 추가합니다.

예시

import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
public class RemovingDuplicates {
   public static void main(String[] args){
      //Instantiating an ArrayList object
      ArrayList<String> list = new ArrayList<String>();
      list.add("JavaFX");
      list.add("Java");
      list.add("JavaFX");
      list.add("OpenCV");
      list.add("Java");
      list.add("JOGL");
      list.add("JOGL");
      list.add("HBase");
      list.add("Flume");
      list.add("HBase");
      list.add("Impala");
      System.out.println("Contents of the Array List : \n"+list);
      //Retrieving Iterator object of the ArrayList class
      Iterator<String> it = list.iterator();
      //Creating an empty Set object
      Set<String> set = new HashSet<String>();
      //Adding elements of the ArrayList to the Set object
      while(it.hasNext()) {
         set.add(it.next());
      }
      //Removing all the elements from the ArrayList
      list.clear();
      //Adding elements of the set back to the list
      list.addAll(set);
      System.out.println("Contents of the Array List after removing duplicate elements: \n"+list);
   }
}

출력

Contents of the Array List :
[JavaFX, Java, JavaFX, OpenCV, Java, JOGL, JOGL, HBase, Flume, HBase, Impala]
Contents of the Array List after removing duplicate elements:
[JavaFX, Java, OpenCV, JOGL, Flume, Impala, HBase]