Coding 공부/Java

[Java_Summary] Iterator<E> 인터페이스, 컬렉션 접근방식, Board#3

CBJH 2024. 2. 29. 15:04
728x90
반응형

1. Iterator<E> 인터페이스

 

Vector, ArrayList, LinkedList가 상속받는 인터페이스 :  리스트 구조의 컬렉션에서 요소의 순차 검색을 위한 메소드 포함

 

1.1 Iterator 인터페이스 메소드

 

  • iterator() 메소드 : Iterator 객체 반환(생성자와 비슷한 역할)
  • Iterator 객체를 이용하여 인덱스 없이 순차적 검색 가능

 

1.2 Iterator 인터페이스 Vector 구현 예제

 

1.3 Board#3 회원검색 기능 추가

 

  • UserSVC클래스에 searchUser(); 메서드를 추가했다.
  • userInput 문자열 자료형에 값을 입력받고 해당 값이 userMap컬렉션 values값인 User의 멤버에 있는지 if문으로 확인 후 user정보를 toString() 메서드를 사용해 문자열로 받아 출력한다.
  • user 멤버에 age변수가 int type이라 오류가 발생하여 81번줄을 추가하여 문자열로 변환 후 비교했다.

 

2. 컬렉션의 접근 방식

 

List

 

List 인터페이스는 자바 컬렉션 프레임워크의 일부로, 인덱스 기반으로 요소를 관리하는 순서가 있는 컬렉션을 나타냅니다. List를 구현하는 클래스들은 요소들이 명시적인 인덱스에 따라 순서대로 저장되며, 이 인덱스를 사용하여 리스트 내 특정 위치의 요소에 접근, 추가, 삭제 등의 작업을 수행할 수 있습니다.

 

Set

  • Set 인터페이스는 중복을 허용하지 않는 유일한 요소의 집합을 나타냅니다. Set에는 순서 개념이 없거나 명시적이지 않기 때문에, 인덱스를 통해 특정 요소에 접근하는 것이 자연스럽지 않습니다. 예를 들어, HashSet은 해시 테이블을 사용하여 요소를 저장하므로 요소들 사이의 순서를 보장하지 않습니다. 반면에, LinkedHashSet은 요소들이 삽입된 순서를 유지하지만, 여전히 인덱스 접근을 직접적으로 지원하지는 않습니다. TreeSet은 정렬된 순서로 요소를 유지하지만, 인덱스를 통한 접근 대신 정렬된 순서에 따른 접근 방식을 사용합니다.

Queue

  • Queue 인터페이스는 요소가 처리되기 전에 보관되는 컬렉션을 나타냅니다. 큐는 일반적으로 FIFO(First-In-First-Out) 순서를 따르지만, 특정 구현에 따라 다른 순서(예: 우선순위 큐의 경우)를 사용할 수도 있습니다. Queue의 주요 연산은 요소를 추가하고, 요소를 검사하고, 요소를 제거하는 것이며, 이는 인덱스 기반 접근보다는 순서대로 처리되는 작업에 초점을 맞춥니다. 예를 들어, LinkedList는 List와 Queue 인터페이스를 모두 구현하지만, 큐로서 사용될 때는 인덱스 접근보다는 offer, poll, peek 같은 큐 연산에 초점을 맞춥니다.