일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- kotlin 클래스
- 자바 스트림
- 스프링
- SQL 문제풀이
- 스프링부트 채팅서버
- SQL프로그래머스
- 스프링시큐리티
- 프로그래머스
- 오라클
- oracle
- MSA
- pygame
- 자바스크립트
- Spring
- javascript
- LeetCode SQL
- 파이게임
- springboot
- 코틀린 클래스
- Leetcode
- js
- 자바8
- java8
- 스프링부트
- mysql
- 구글로그인
- python
- SQL
- spring boot
- oauth2
Archives
- Today
- Total
웅겹살의 프로그래밍 삼매경
[java] 자바 java Iterator 본문
728x90
Iterator
- 컬렉션 프레임워크에서 저장된 요소를 읽어오는 방법을 표준화하기 위한 역할(인터페이스)
- Collection의 하위 컬렉션들이 소유 -> Iterator 타입의 객체를 반환하는 메소드를 이미 구현
- List, Set계열에 구현(Map은 없음)
- 주로 읽기 전용으로 사용한다.
Iterator의 주요멤버
1. boolean hasNext()
2. T next()
3. remove()
ArrayList<String> list = new ArrayList<String>();
list.add("삼겹살");
list.add("항정살");
list.add("목살");
list.add("가브리살");
list.add("천겹살");
List에 데이터를 담고 반복을 돌리는 방법?
1. for 문
for( int i =0; i<list.length; i++){
출력문(list.get(i));
}
2. for-each문(향상된 for문)
for( String str : list ){
출력문( str );
}
3. Iterator 반복자
Iterator<String> iter = list.iterator();
while(iter.hasNext()){
System.out.println(iter.next());
}
Map 계열도 반복을 돌린다??
- 반복을 돌린다기보다는 전체 Map계열의 키를 알면 값을 알수있음. 이런 맵계열 컬렉션의 특징을 통해 Iterator를 이용하여 반복을 돌릴수가 있다.
- keySet() 메소드를 이용. -> Map계열의 전체 키Set을 반환.
class Example{
public static void main(String[] args){
HashMap<String, String> map = new HashMap<String, String>();
map.put("one", "하나");
map.put("two", "둘");
map.put("three", "셋");
map.put("four", "넷");
map.put("five", "다섯");
// 해쉬맵 루프 돌리기.
// -Map계열은 순서가 없어서 루프 돌리기 힘들다.
//Collection > List - Set
Set<String> keys = map.keySet(); // 해쉬맵의 키의 집합.
Iterator<String> iter = keys.iterator();
while(iter.hasNext()) {
String key = iter.next(); //*****
System.out.printf("map.get(\"%s\")=%s\n",key,map.get(key));
}
}
}
map의 key 데이터 타입과 같은 타입으로 Set 타입 객체를 반환하여 여기에 iterator를 만들고 키값을 돌리면 된다.
class Example{
public static void main(String[] args){
Collection<String> value = map.values();//값의 집합.
iter = value.iterator();
while(iter.hasNext()) {
System.out.println(iter.next());
}
}
}
728x90
'자바(java)' 카테고리의 다른 글
[java] static, final, static final 차이점 (1) | 2022.06.17 |
---|---|
[java] 롬복 lombok 이란? (0) | 2022.06.16 |
[java] List 종류와 정리 (0) | 2022.03.31 |
[java] Set 종류와 정리 (0) | 2022.03.30 |
[java] Map 종류와 정리 (0) | 2022.03.29 |
Comments