TreeSet Comparable

제로·2023년 9월 6일
0

Java basic

목록 보기
43/45
post-custom-banner

TreeSet으로 객체 출력하기

  • Member.java
    1) memberId와 memberName으로 이루어진 객체

  • MemberTreeSet.java
    1) Member 객체를 TreeSet으로 관리
    2) Member 추가하는 addMember 메서드
    3) memberId를 입력받아 Member를 삭제하는 removeMember 메서드
    4) TreeSet에 들어있는 Member 객체를 출력하는 showAll 메서드

에러 발생

  • MemberTreeSetTest.java

    ; 실행시 하기와 같은 에러 발생

==> Comparable 에러 : addMember메서드를 통해 Member 객체를 TreeSet에 넣을 때 어떻게 비교해서 객체를 넣을지가 구현이 되지 않았다.

  • TreeSetTest.java
    ; String 객체를 TreeSet 안에 넣고 출력

==> 결과 : 정렬이 되어서 출력된다.

==> String Class 는 Comparable을 이미 구현해놓았기 때문이다. String을 add를 할때 어떻게 비교해서 Tree에 저장되는지 이미 정해져있다는 뜻.

==> Member class는 Comparable을 구현하지 않았기 때문에 에러가 발생하였다.

해결

  • Member.java
    ; Comparable을 구현

    ; compareTo 메서드를 override
    ; 기준을 정해서 기존에 있는 데이터와 지금 넣는 데이터를 비교해서 위치를 잡아준다

결과

  • 이름에 대해서 오름차순으로 정렬되어서 출력

추가

  • Member.java
    ; Comparator 구현
  • Member.java에 디폴트 생성자를 선언
  • MemberTreeSet.java
    ; treeSet을 생성할 때 Member 객체를 받아서 생성

; compare 메서드를 override
;

profile
아자아자 화이팅
post-custom-banner

0개의 댓글