728x90
Iterate
(계산, 컴퓨터 처리 절차를) 반복하다
Iterator
반복자
프로그래밍에서 반복기는 개발자가 컨테이너, 특히 리스트를 순회할 수 있게 해주는 객체이다. 다양한 유형이 반복기는 종종 컨테이너의 인터페이스를 통해 제공된다. 반복기는 데이터 베이스 커서와 동작이 유사하다.
iterator는 ArrayList, HashSet과 같은 컬렉션을 반복하는데 사용할 수 있는 객체이다.
반복문을 사용하면 될 것을 ! 왜 Iterator를 사용하는 것일까?
Iterator 사용 이유
리스트에는 인덱스가 있지만 Set, Map은 순서가 없는 컬렉션이기에 인덱스가 없다. iterator는 for-each 반복문이 할 수 없는 일을 할 수 있다.
컬렉션에서 요소를 제어하는 기능
iterator가 반복하는 동안 요소 제거가 가능하다.
next(), previous()를 사용해 앞뒤로 이동이 가능하다.
for-each는 처음부터 끝까지 반복해야만 한다.
hasNext()를 사용해 더 많은 요소가 있는지 확인이 가능하다.
HashMap 예제
Entry에 For-Each Loop 사용
- Key, Value 모두 필요할 경우
Map<String, Integer> map = new HashMap<>();
for (Map.Entry<String, Integer> entry: map.entrySet()) {
System.out.println("Key : " + entry.getKey() + ", Value : " + entry.getValue());
}
- Key, Value 모두 필요할 경우
Map<String, Integer> hs = new HashMap<String, Integer>();
for(String key : hs.keySet()) {
System.out.println("Key = " + key);
}
for(Integer value : hs.values()) {
System.out.println("Value = " + value);
}
Iterator 사용
Map<String, Integer> map = new HashMap<String, Integer>();
Iterator<Map.Entry<String, Integer>> entries = map.entrySet().iterator();
while(entries.hasNext()) {
Map.Entry<String, Integer> entry = entries.next();
System.out.println("Key : " + entry.getKey() + ", Value : " + entry.getValue());
}
ArrayList 사용법
- 데이터 조회
ArrayList<String> arrayList = new ArrayList<String>();
Iterator<String> iterator = arrayList.iterator();
while(iterator.hasNext()) {
String str = iterator.next();
System.out.println(str);
}
for(String str : arrayList) {
System.out.println(str);
}
- 값 수정하기
ListIterator<String> listIterator = arrayList.listIterator()l
while(listIterator.hasNext()) {
Object element = listIterator.next();
listIterator.set(element + ", ");
}
- 역순으로 순회하기
while(listIterator.hasPrevious()) {
Object element = listIterator.previous();
System.out.println(element + " ");
}
Set 사용법
Set<String> set = new HashSet<>();
Iterator<String> iterator = set.iterator();
while(iterator.hasNext()) {
System.out.println("value : " + iterator.next());
}
for(String s : arrayList) {
System.out.println("value : " + s);
}
참조
728x90
'Language > Java' 카테고리의 다른 글
[Java] compareTo 메소드 정리 (0) | 2023.02.03 |
---|---|
[Java] 배열을 List로 변환하기, List를 배열로 변환하기, convert int array to arrayList, convert list to int array (0) | 2023.02.03 |
[Java] Hashmap 정렬방법 (0) | 2023.02.01 |
[Java] 람다 표현식 / 함수형 인터페이스 (@FunctionalInterface) (0) | 2023.01.31 |
[Java] 익명함수 (익명 자식 객체, 익명 구현 객체) (0) | 2023.01.31 |