HashSet 클래스
- Set 인터페이스를 구현한 클래스
- 멤버의 중복 여부를 체크하기 위해 인스턴스의 동일성을 확인해야 함
- 동일성 구현을 위해 필요에 따라 equals()와 hashCode() 메서드를 재정의함
Memeber.java
public class Member {
private int memeberId;
private String memberName;
public Member(int memeberId, String memberName) {
this.memeberId = memeberId;
this.memberName = memberName;
}
public final int getMemeberId() {
return memeberId;
}
public final void setMemeberId(int memeberId) {
this.memeberId = memeberId;
}
public final String getMemberName() {
return memberName;
}
public final void setMemberName(String memberName) {
this.memberName = memberName;
}
@Override
public String toString() {
return memberName + " 회원님의 아이디는 " + memeberId + "입니다";
}
@Override
public boolean equals(Object obj) {
if(obj instanceof Member) {
Member member = (Member)obj;
if(this.memeberId == member.memeberId) {
return true;
}else {
return false;
}
}
return false;
}
@Override
public int hashCode() {
return memeberId;
}
}
MemberHashSet.java
public class MemberHashSet {
private HashSet<Member> hashset; // 제너릭으로 <> 안에 관리할 타입 작성
public MemberHashSet() {
hashset = new HashSet<Member>(); // <> 다이아모든 연산자 안에 타입 생략 가능
}
public MemberHashSet(int size) {
hashset = new HashSet<Member>(size);
}
public void addMember(Member member) {
hashset.add(member);
}
public boolean removeMember(int memberId) {
Iterator<Member> ir = hashset.iterator();
while(ir.hasNext()) {
Member member = ir.next();
int tempId = member.getMemeberId();
if(tempId == memberId) {
hashset.remove(member);
return true;
}
}
return false;
}
public void showAllMember() {
for(Member member : hashset) {
System.out.println(member);
}
System.out.println();
}
}
MemberHashSetTest.java
public class MemberHashSetTest {
public static void main(String[] args) {
MemberHashSet memberHashSet= new MemberHashSet();
Member memberLee = new Member(1001, "Lee");
Member memberKim = new Member(1002, "Kim");
Member memberKang = new Member(1003, "Kang");
memberHashSet.addMember(memberLee);
memberHashSet.addMember(memberKim);
memberHashSet.addMember(memberKang);
Member memberHong = new Member(1003, "Hong");
memberHashSet.addMember(memberHong);
memberHashSet.showAllMember();
}
}'JAVA' 카테고리의 다른 글
| [JAVA] 여러 내부 클래스의 정의와 유형 (1) | 2023.09.04 |
|---|---|
| [JAVA] 쌍(pair)으로 자료를 관리하는 Map 인터페이스를 구현한 클래스와 그 활용 (1) | 2023.09.01 |
| [JAVA] Collection 요소를 순회하는 Iterator (1) | 2023.08.28 |
| [JAVA] 순차적으로 자료를 관리하는 List 인터페이스를 구현한 클래스와 그 활용 (1) | 2023.08.28 |
| [JAVA] 자바에서 제공되는 자료구조 구현 클래스들 - 컬렉션 프레임워크 (0) | 2023.08.24 |