List 인터페이스 구현 예제 / Iterator
15 Oct 2021 -
2 minute read
List 인터페이스 구현 예제
-
Member.java
public class 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 + "입니다."; } }
-
MemberArrayList.java
import java.util.ArrayList; public class MemberArrayList { // ArrayList 선언 private ArrayList<Member> arrayList; // Member로 선언한 ArrayList 생성 public MemberArrayList() { arrayList = new ArrayList<>(); } public MemberArrayList(int size) { arrayList = new ArrayList<>(size); } public void addMember(Member member) { arrayList.add(member); } // 회원 아이디 삭제 여부 반환 public boolean removeMember(int memberId) { // 해당 아이디를 가진 회원을 ArrayList에서 찾기 for (int i = 0; i < arrayList.size(); i++) { Member member = arrayList.get(i); int tempId = member.getMemberId(); // 아이디가 매개변수와 일치한다면 해당 멤버 삭제 > true 반환 if (tempId == memberId) { arrayList.remove(i); return true; } } // for문이 다 돌 때까지 return이 안된 경우 System.out.println("해당 아이디가 존재하지 않습니다."); return false; } public void showAllMember() { for (Member member : arrayList) { System.out.println(member); } } }
-
(Main Class) MemberArrayListMain.java
public class MemberArrayListMain { public static void main(String[] args) { MemberArrayList memberArrayList = new MemberArrayList(); Member member1 = new Member(101, "이밤"); Member member2 = new Member(102, "강새벽"); Member member3 = new Member(103, "최아침"); Member member4 = new Member(104, "윤저녁"); memberArrayList.addMember(member1); memberArrayList.addMember(member2); memberArrayList.addMember(member3); memberArrayList.addMember(member4); memberArrayList.showAllMember(); System.out.println(); memberArrayList.removeMember(member3.getMemberId()); memberArrayList.showAllMember(); } }
-
출력결과
이밤 회원님의 아이디는 101입니다. 강새벽 회원님의 아이디는 102입니다. 최아침 회원님의 아이디는 103입니다. 윤저녁 회원님의 아이디는 104입니다. 이밤 회원님의 아이디는 101입니다. 강새벽 회원님의 아이디는 102입니다. 윤저녁 회원님의 아이디는 104입니다.
Iterator
-
Collection 요소를 순회 > 컬렉션 프레임워크에 저장된 요소들을 하나씩 차례로 참조
-
순서가 있는 List 인터페이스의 경우 Iterator를 사용하지 않고 get(i) 메서드 활용 가능
-
Set 인터페이스의 경우 get(i) 메서드 제공되지 않음 > Iterator 활용하여 객체 순회
-
-
boolean hasNext() : 이후에 요소가 더 있는지 체크 > 있다면 true 반환
-
E next() : 다음에 있는 요소를 반환
-
-
ex)
-
for문 사용
// 회원 아이디 삭제 여부 반환 public boolean removeMember(int memberId) { // 해당 아이디를 가진 회원을 ArrayList에서 찾기 for (int i = 0; i < arrayList.size(); i++) { Member member = arrayList.get(i); int tempId = member.getMemberId(); // 아이디가 매개변수와 일치한다면 해당 멤버 삭제 > true 반환 if (tempId == memberId) { arrayList.remove(i); return true; } } // for문이 다 돌 때까지 return이 안된 경우 System.out.println("해당 아이디가 존재하지 않습니다."); return false; }
-
Iterator 사용
import java.util.Iterator; ... public boolean removeMember(int memberId) { // Iterator 사용하기 Iterator<Member> irIterator = hashSet.iterator(); while (irIterator.hasNext()) { Member member = (Member) irIterator.next(); int tempId = member.getMemberId(); if (tempId == memberId) { hashSet.remove(member); return true; } } System.out.println("해당 아이디가 존재하지 않습니다."); return false; }
-