JAVA 코딩테스트 :: 중복 원소 제거

s_omi·2022년 7월 20일
0

JAVA (자바)

목록 보기
42/62
post-thumbnail

📝 배열에서 중복 원소 제거하기

  • 직접 구현
  • HashSet: 배열의 순서를 보장하지 않음.
  • LinkedHashSet: 배열의 순서를 보장.
  • TreeSet: 배열의 순서를 보장하지 않으며, 오름차순 정렬.
  • distinct()

💡 직접 구현

▶ 예시

public static void main(String[] args) {
    String[] list = {"J", "A", "V", "A"};
    ArrayList<String> ary = new ArrayList<>();

    for(String data : list){
        if(!ary.contains(data))  // ary에 포함되어 있는 지 체크 
            ary.add(data);       // 포함되어 있지 않으면 넣기
    }

    System.out.println(ary);     // [J, A, V]
}

💡 HashSet

▶ 예시

public static void main(String[] args) {
    String[] list = { "J", "A", "V", "A" };
    HashSet<String> hashSet = new HashSet<>();

	for(String item : list){
        hashSet.add(item);
    }
    
    System.out.println(hashSet);  // [A, V, J]
}

💡 LinkedHashSet

▶ 예시

public static void main(String[] args) {
    String[] list = { "J", "A", "V", "A" };
    LinkedHashSet<String> linkedHashSet = new LinkedHashSet<>();

	for(String item : list){
        linkedHashSet.add(item);
    }
    
    System.out.println(linkedHashSet);  // [J, A, V]
}

💡 TreeSet

▶ 예시

public static void main(String[] args) {
    String[] list = { "J", "A", "V", "A" };
    TreeSet<String> treeSet = new TreeSet<>();

	for(String item : list){
        treeSet.add(item);
    }
    
    System.out.println(treeSet);  // [A, J, V]
}

💡 distinct()

▶ 예시

public static void main(String[] args) {
    String[] arr = {"J", "A", "V", "A"};
    // 배열 => strem => 중복제거 => 배열
    String[] resultArr = Arrays.stream(arr).distinct().toArray(String[]::new);
    // Dup이 제거된 배열 출력

    System.out.println(Arrays.toString(resultArr));  // [J, A, V]
}

profile
공부한 거 올려요 :)

0개의 댓글