본문 바로가기

JAVA

자바_Set 인터페이스

1. Set 인터페이스란?

: 순서와 상관없이 중복을 허용하지 않는 경우에는 Set 인터페이스를 구현한 클래스를 사용한다. 우리가 사용하는 데이터 중에 중복을 허용하지 않는 데이터는 어떤 것이 있을까? 회원 아이디, 주민등록번호, 사번 등은 중복되면 안 될 것이다. Set 인터페이스를 구현한 대표 클래스에는 HashSet와 LinkedSet, 그리고 TreeSet이 있다. 

 

오늘 포스팅에서는 import를 사용하여 각각의 Set 인터페이스를 구현해 보도록 하겠다.

 

2. HashSet

  • 중복 데이터 허용 안 함
  • 정렬되지 않음
  • null 삽입 허용

 

ex) 

import java.util.HashSet;

public class Main {

	public static void main(String[] args) {
		
		HashSet<String> hashSet = new HashSet<String>();
		hashSet.add("JAVA");
		hashSet.add("JavaScript");
		hashSet.add("HTML");
		hashSet.add("CSS");
		hashSet.add("JAVA");
		Iterator<String> iter = hashSet.iterator();
		
		while(iter.hasNext()) {
			String next = iter.next();
			System.out.println(next + "(" + next.hashCode() + ")" );
		}
	}

}

[출력값]

 

3. LinkedHashSet

  • 입력된 순서대로 데이터 관리
  • 중복 데이터 허용 안 함

 

ex)

import java.util.LinkedHashSet;

public class Main {

	public static void main(String[] args) {
		
		LinkedHashSet<Integer> lhs = new LinkedHashSet<Integer>();
		lhs.add(10);
		lhs.add(3);
		lhs.add(15);
		lhs.add(10);
		lhs.add(3);
		Iterator<Integer> iter = lhs.iterator();
		while (iter.hasNext()) {
			System.out.println(iter.next());
		}
	}

}

[출력값]

 

 

4. TreeSet

  • 기본적으로 오름차순으로 데이터를 정렬
  • 데이터 중복 역시 허용 안 함

 

ex)

import java.util.TreeSet;

public class Main {

	public static void main(String[] args) {
		
		TreeSet<Integer> treeSet = new TreeSet<Integer>();
		treeSet.add(10);
		treeSet.add(5);
		treeSet.add(8);
		treeSet.add(5);
		System.out.println(treeSet);
    }
}

[출력값]

 

'JAVA' 카테고리의 다른 글

자바_Map 인터페이스  (0) 2022.03.04
자바_Priority Queue  (0) 2022.03.02
자바_Queue  (0) 2022.02.28
자바_Stack  (0) 2022.02.25
자바_Linked List  (0) 2022.02.24