java - MemberTreeSet

imjingu·2023년 9월 5일
0

개발공부

목록 보기
461/481
package chapter20230905.TreeSet;

public class Member implements Comparable<Member>{
	private int memberID;
	private String memberName;

	public Member(int memberID, String memberName) {
		this.memberID = memberID;
		this.memberName = memberName;
	}

	public int getMemberID() {
		return memberID;
	}


	public void setMemberID(int memberID) {
		this.memberID = memberID;
	}


	public String getMemberName() {
		return memberName;
	}


	public void setMemberName(String memberName) {
		this.memberName = memberName;
	}
	
	@Override
	public String toString() {
		return memberName + "회원님의 아이디는 " + memberID + " 입니다.";
	}

	@Override
	public int compareTo(Member member) { // Comparable를 구현하기 때문에 오버라이딩
		// 비교하는 두 값중 this 값이 더 크면 양수를 반환하여 오름차순으로 정렬
		// 메서드를 호출하는 객체가 인자로 넘어온 객체보다 작을 경우에는 음수를 리턴하고, 크기가 동일하다면 0, 클 경우에는 양수를 리턴
		// return(this.memberID - member.memberID); // memberID가 정수이기 때문에 오름차순으로 정렬
		return(this.memberID - member.memberID) * (1); // 내림차순으로 정렬하기 위해 반환값을 음수로 만듬
	}
	

}

package chapter20230905.TreeSet;
import java.util.*;

public class MemberTreeSet {
	private TreeSet<Member> treeSet; // TreeSet 선언
	
	public MemberTreeSet() {
		treeSet = new TreeSet<>(); // TreeSet 생성
	}
	
	public void addMember(Member member) {
		treeSet.add(member); // TreeSet에 회원 추가
	}
	
	public boolean removeMemeber(int memberId) {
		// 매개변수로 받은 회원 아이디에 해당하는 회원 삭제
		
//		Iterator<Member> iterator = hashSet.iterator(); // iterator를 활용해 순회함
//		while(iterator.hasNext()) {
//			Member member = iterator.next(); // 회원을 하나씩 가져와서
//			int tempId = member.getMemberID(); // 아이디 비교
//			if(tempId == memberId) { // 같은 아이디인 경우
//				hashSet.remove(member); // 회원 삭제
//				return true;
//			}
//		}
		for(Member member : treeSet) {
			int tempId = member.getMemberID(); // 아이디 비교
			if(tempId == memberId) { // 같은 아이디인 경우
				treeSet.remove(member); // 회원 삭제
				return true;
			}	
		}
		System.out.println(memberId + "가 존재하지 않습니다.");
		return false;
	}
	public void showAllMember() { // 모든 회원 출력
		for(Member member : treeSet) {
			System.out.println(member);
		}
		System.out.println();
	}
	
}

package chapter20230905.TreeSet;

public class MemberTreeSetTest {
	public static void main(String[] args) {
		MemberTreeSet memberTreeSet = new MemberTreeSet();
	
	    Member memberPark = new Member(1003, "박서훤");
	    Member memberLee = new Member(1001, "이지원");
	    Member memberSon = new Member(1002, "손민국");
	
	    memberTreeSet.addMember(memberLee);
	    memberTreeSet.addMember(memberSon);
	    memberTreeSet.addMember(memberPark);
	    memberTreeSet.showAllMember();
	
	    Member memberHong = new Member(1003, "홍길동");  //1003 아이디 중복
	    memberTreeSet.addMember(memberHong);
	    memberTreeSet.showAllMember();
	}
}

0개의 댓글