학교/JAVA

컬렉션(ArrayList<String>, Iterator) 연습문제 (ArrayEx02)

서윤-정 2023. 10. 26. 17:23

• ArrayList를 사용하여 문자열 저장, 그 문자열을 반복문과 Iterator를 사용하여 검색하는 예제

 

package ArrayList;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;

public class ArrayEx02 {

	public static void main(String[] args) {

		ArrayList<String> list = new ArrayList<String>(Arrays.asList("HTML", "JAVA", "JSP"));

		for (String str : list) {
		    System.out.println(str);
		}

		Iterator<String> it = list.iterator();
		while (it.hasNext()) {
		    String str = it.next();
		    if ("JAVA".equals(str)) {
		        System.out.println(str);
		        System.out.println("JAVA 문자열이 존재합니다.");
		    }
		}

	}

}

1) ArrayList<String> list = new ArrayList<String>(Arrays.asList("HTML", "JAVA", "JSP"));

문자열 저장하는 ArrayList 'list' 생성.

Array.asList() 사용해 초기 값 추가하고 있음.

각 문자열은 개별 요소로 저장됨.

 

2) for-each 루프 사용해 list에 저장된 문자열 출력

 

3) Iterator<String> it = list.iterator():

Iterator 생성(컬렉션 반복하는데 사용됨)

hasNext() 메서드로 다음 요소가 있는지 확인, next() 메서드로 다음 요소 가져옴

 

4) while루프로 Iterator를 통해 list 반복하면서 JAVA 문자열 검색하고

해당 문자열 찾았을 때 문자열 출력, 메시지 표시

 

 

 

 

 

 

 

 

Iterator: Java에서 컬렉션 반복(iterate)하면서 요소에 접근하는데 사용되는 인터페이스.

컬렉션의 내부 구조를 숨기고 안전하게 반복할 수 있도록 해줌. 

요소를 수정하거나 삭제할 때 예상치 못한 동작을 피할 수 있음.

 

1. Iterator 객체 생성

컬렉션에서 Iterator 객체 생성

Iterator<T> iterator = collection.iterator();

T는 컬렉션에 저장된 요소의 타입

 

2. 요소 확인

hasNext() 메서드를 사용해 다음 요소가 있는지 확인

hasNext()가 true 반환하면 아직 요소 남아있고, false 반환하면 더 이상 요소가 없는 것.

while (iterator.hasNext()) {
    // 다음 요소가 존재하는 동안 작업 수행
}

 

3. 다음 요소 얻기

next() 메서드 호출해 현재 요소로 가져옴.

이 메서드는 현재 요소 반환하고 Iterator를 다음 요소로 이동

T element = iterator.next();
// element를 사용하여 작업을 수행

 

4. 요소 삭제(선택적)

Iterator를 통해 현재 요소를 삭제할 수 있습니다. remove() 메서드를 호출하면 현재 요소가 삭제됩니다. 다만, 모든 컬렉션에서 remove()를 지원하지 않을 수 있으며, 호출하기 전에 반드시 hasNext()next()를 사용하여 현재 요소로 이동해야 합니다.

iterator.remove();