[JAVA]22일차(컬렉션 프레임워크(Collection Framework)/Enumeration/Iterator)

정효진·2021년 8월 12일
0

Developer Study

목록 보기
40/47
post-thumbnail

8월13일(금)

Test160~Test168

◼ Enumeration/Iterator

// 둘의 기능은 비슷하지만 호환성 때문에 둘다 사용법을 알고 있어야함!!

Enumeration는 자바초기버젼에서 제공되는것으로 Hashtable, Vector 에서 사용가능하다. Iterator는 jdk1.2에서 제공되는 것으로 Collection인터페이스를 구현상속한 모든 컬렉션 클래스에서 사용가능하다.

▪ Enumeration 과 Iterator 인터페이스

Colloection Framework에는 Enumeration 과 Iterator 라는 인터페이스가 있다.
사전적인 의미로는 반복, 순환 이라는 의미를 가지고 있으며 어떤 객체들의 모임이 있을 때, 이 객체들을 어떤 순서에 의해 하나씩 접근하여 사용하기 위한 인터페이스라고 할 수 있다.

- java.util.Enumeration<E> 인터페이스
  : 이 인터페이스는 단지 두개의 메소드만을 제공하며
  『hasMoreElements()』 메소드를 통해
  인터페이스 안에 다음 요소가 있는지에 대한 질의를 한다.
  만약 true 가 반환되었다면 다음 인덱스에 요소가 존재한다는 의미이며
  『nextElement()』메소드로 다음 요소를 꺼내어 사용하며 되는 것이다.

  ex) // v 라는 자료구조에 저장된 모든 요소 접근 및 출력
  	  for (Enumeration e = v.elements(); e.hasMoreElements();)
	  {
		System.out.println(e.nextElement());
	  }
- java.util.Iterator<E> 인터페이스
  : Enumeration 과의 차이점은 단지 『remove()』메소드가 추가된 것 뿐이다.
  Iterator가 가지고 있는 『hasNext()』와 『Next()』메소드는
  이름만 약간 다를 뿐 Enumeration 인터페이스가 가지고 있는
  『hasMoreElements()』 와 『nextElement()』와
  정확히 일치하는 기능을 수행한다.
  Enumeration  대신 Iterator를 JDK1.2 부터 추가하여 사용하게 된 이유는
  Enumeration 인터페이스는 집합 내에서 요소를 제거할 방법이 없기 때문에
  이를 보완하기 위해 나온 것이 Iterator 인터페이스이다.

▪ Enumeration 과 Iterator 인터페이스 코드 설명📝

import java.util.Vector;
import java.util.Enumeration;
import java.util.Iterator;

public class Test160
{
	public static void main(String[] args)
	{
		// 벡터 자료구조 인스턴스 생성
		Vector<String> v = new Vector<String>();

		// 벡터 자료구조 v 에 요소 추가
		v.add("Java");
		v.add("Oracle");
		v.add("Jsp");
		v.add("Servlet");
		v.add("Spring");

		// ① Emuneration
		//	- hasMoreElements()
		//	- nextElement()
		Enumeration<String> e = v.elements();
		while (e.hasMoreElements())  // true / false
		{
			System.out.println(e.nextElement());
		}
		System.out.println();
		//Java
		//Oracle
		//Jsp
		//Servlet
		//Spring

		System.out.println("---------------------------------------");


		// ① Iterator
		//	- hasNext()
		//	- next()
		Iterator<String> it = v.iterator();
		while (it.hasNext())
		{
			System.out.println(it.next());
		}
		System.out.println();
		//Java
		//Oracle
		//Jsp
		//Servlet
		//Spring
	}
}
profile
개발새발

0개의 댓글