[Java] 자료구조, 컬렉션 프레임 워크 (3)

2020. 7. 1. 03:46Language/Java

1. Set 인터페이스

내부적으로 순서대로 저장되지 않기 때문에 특정 index의 값이 불분명하다. get(i) 메서드를 제공하지 않으며 Itrator로 순회한다. 중복을 허용하지 않고 저장된 순서와 출력순서는 다를 수 있다. 아이디, 주민번호, 사번 등 유일한 값이나 객체를 관리할 때 사용한다.

1) HashSet (1)

HashSetTest
구현화면

2) HashSet (2)

Member, MemberHashSet, MemberTest
구현 화면

3) HashSet (3)
 중복을 허용하지 않으므로 저장되는 객체의 동일함 여부를 알기 위해 equals()와 hashCode() 메서드 재정의한다.

Member, MemberTest (중복 처리)

   4) TreeSet (1)
      : 객체의 정렬에 사용되는 클래스
      : 중복을 허용하지 않으면서 오름차순이나 내림차순으로 객체를 정렬
      : 내부적으로 이진 검색 트리(BST)로 구현되어 있음 (비교조건 필요)
      : BST에 자료가 저장 될 때 비교하여 저장될 위치를 정함
      : 객체 비교를 위해 Comparable이나 Comparator 인터페이스를 구현

TreeSetTest

5) TreeSet (2)

addMember 메서드에서 비교를 하기 위해서 Comparable 인터페이스를 상속받아 compareTo 메서드 구현한다.

Member, MemberTreeSet(Comparable), MemberTest
구현 화면

6) TreeSet (3)

Comparator를 상속받을 시 compare 메서드의 매개변수들의 비교가 필요하다. TreeSet이 구현된 클래스의 기본 생성자에는 정렬 기준 필요하다.

Member, MemberTreeSet, MemberTest
구현 화면

7) TreeSet (4)
Comparable의 compareTo 메서드로 정의가 되어있을 경우 Comparator를 상속받아 원하는 정렬 방식 생성이 가능하다.

ComparatorTest


[참고] github.com/ozofweird/Java_Practice

728x90