프로그래밍

[Java]Iterator란?

재은이 2022. 2. 22. 11:39
728x90
반응형
Iterator 정의

Iterator는 객체 지향적 프로그래밍에서 배열이나 그와 유사한 자료 구조의 내부의 요소를 순회(traversing)하는 객체이다. 자바의 컬렉션 프레임웍에서 컬렉션에 저장되어있는 요소들을 읽어오는 방법을 표준화 하였는데 그 중 하나가 Iterator이다.

 

인터페이스 Iterator의 구조
public interface Iterator{

     boolean hasNext();

     Object next();

     void remove();

}

boolean hasNext() : 읽어올 요소가 남아있나 확인. true,false

Object next() : 다음 데이터를 반환.

void remove() : next()로 읽어온 요소를 삭제.

 

호출순서는 hasNext() -> next() -> remove() 순서 이다.

 

Iterator 특징

Iterator는 자동으로 index를 관리해주기 때문에 사용에 편리함이 있을 수 있으나 

Iterator를 열어보면 객체를 만들어 사용하기 때문에 느릴수 밖에 없다.

그러므로 list의 size를 받아와서 사용하는 것이 더 좋다.

 

업무예제
CommonMap MapChk = DAO.getNullChk(paramMap); //select한 데이터를 map에 담음
Iterator<String> key = MapChk.keySet().iterator(); //keySet()으로 키값만 출력
while (key.hasNext()) { //true, false
			String key = key.next(); //다음데이터 반환
		    Object value = MapChk.get(key); //MapChk데이터에서 key값에 해당하는 값 
		    String strVal = String.valueOf(value); //value가 null이면 문자열 "null"을 만들어서 반환.
		   	if(!"0".equals(strVal)) { //strVal이 널이 아니면
		   		CommonMap Map = DAO.getAttr(paramMap); //map에 select한 데이터 넣기
		   		Map.put("crdType", "C"); 
				Map.put("interfaceId", "CUST");
				Map.put("keyCode", "keyCode");
				DAO.setAttr(eaiCustMap); //인터페이스 테이블 등록
				break;
		   	}
		}

 

728x90
반응형