728x90
반응형
오늘은 자바의 Iterator의 개념과 장/단점을 알아보려고 한다.
먼저, Iterator가 무엇을 말하는지 살펴보자.
1. 개념
JAVA Iterator란?
: 컬렉션 프레임워크(Collection Framework)에 저장된 데이터를 순회하는 인터페이스이다.
컬렉션 프레임워크는 List, Set, Map, Queue, ArrayList, Stack, LinkedList 등을 뜻한다.
2. 의의
-우리가 쓰는 웬만한 자료구조의 상위 개념에 속하는 인터페이스로,
Iterator 문법 하나로 자료 구조의 일반적인 순회가 가능하다.
3. 대표 메소드
.hasNext() //다음 요소가 있는지 확인, return값 true/false
.next() //다음 요소 호출
.remove() //요소 삭제
선언은 Iterator<T> iterator = Collection.iterator(); 형태로 할 수 있으며
위와 같은 세 개의 메소드로 간단히 사용이 가능하다.
4. 사용 예시
Iterator<Integer> iter = list.iterator();
while(iter.hasNext()) {
int n = iter.next();
System.out.print(n);
}
Iterator에는 자료형 표기가 가능하다. 해당 예시에서는 Integer 자료형의 Iterator를 선언해
사전에 정의 된 list 를 할당해주었다.
할당 및 초기화를 마친 Iterator는 while문을 통해 .next() 를 거쳐 순회가 가능하며
다음 데이터가 없을 시 순회를 마치게 된다.
5. 한계와 또 다른 방법
Iterator의 사용이 간단하다고 해서 성능이 아주 좋아지는 것은 아니다.
Iterator를 선언하고, 순회하는 과정이 생각보다 시간이 걸리기 때문.
그럴 땐 기존 for문에 Generics를 적용한 방법을 사용하면 좋다.
[기존 for문]
int arr[10];
for(int i=0;i<arr.length;i++){
//for(초기값; 조건; 증감;
}
[Generics 적용한 for문]
List<Integer> list = new ArrayList();
.
.
.
for(Integer i : list) {
System.out.println(i);
}
반응형
'Programming Languages > Java' 카테고리의 다른 글
[JAVA] 객체 지향 언어(Object-Oriented Programming, OOP) 란? (1) | 2024.02.08 |
---|---|
[JAVA/알고리즘] 깊이 우선 탐색 (DFS) 이란? / 자바 사용 예시 총 정리 (2) | 2023.08.18 |
[JAVA/자료구조] 자바 연결리스트 사용법 (Linked List) 구현 / 예제 정리 (0) | 2023.05.23 |
[JAVA/자료구조] 자바 큐 Queue 사용법 / 큐의 특징과 예시 총 정리 (0) | 2023.05.21 |
[JAVA] 문자열 String | StringBuffer | StringBuilder 각 차이점 - 성능의 차이! (2) | 2023.05.20 |