1. 개요
이 사용방법(예제)에서는 Java의 열거 및 반복기 에 대해 배웁니다 . 또한 코드에서 사용하는 방법과 차이점이 무엇인지 배울 것입니다.
2. 열거 및 반복자 소개
이 섹션에서는 Enumeration 및 Iterator 의 개념과 사용 에 대해 알아봅니다 .
2.1. 열거
열거 는 버전 1.0부터 Java에 있었습니다. 인터페이스이며 모든 구현 을 통해 요소에 하나씩 액세스할 수 있습니다 . 간단히 말해서 Vector 및 Hashtable 과 같은 개체 컬렉션을 반복하는 데 사용됩니다.
Enumeration 의 예를 살펴보겠습니다 .
Vector<Person> people = new Vector<>(getPersons());
Enumeration<Person> enumeration = people.elements();
while (enumeration.hasMoreElements()) {
System.out.println("First Name = " + enumeration.nextElement().getFirstName());
}
여기서는 Enumeration 을 사용하여 Person 의 firstName 을 인쇄하고 있습니다. elements() 메소드는 Enumeration에 대한 참조를 제공하며 이를 사용 하여 요소에 하나씩 액세스할 수 있습니다.
2.2. 반복자
Iterator 는 Java 1.2부터 존재했으며동일한 버전에서도 도입된 컬렉션 을 반복하는 데 사용됩니다 .
다음으로 Iterator 를 사용하여 Person 의 firstName 을 인쇄해 보겠습니다 . iterator() 는 Iterator 에 대한 참조를 제공하고 이를 사용하여 요소에 하나씩 액세스할 수 있습니다.
List<Person> persons = getPersons();
Iterator<Person> iterator = persons.iterator();
while (iterator.hasNext()) {
System.out.println("First Name = " + iterator.next().getFirstName());
}
따라서 Enumeration 및 Iterator 는 각각 1.0 및 1.2부터 Java에 있으며 한 번에 하나씩 개체 컬렉션을 반복하는 데 사용됩니다 .
3. 열거 와 반복자 의 차이점
이 표에서는 Enumeration 과 Iterator 의 차이점을 이해할 것 입니다.
열거 | 반복자 |
---|---|
Vector 및 Hashtable 을 열거하기 위해 Java 1.0부터 존재 | List , Set , Map 등과 같은 컬렉션을 반복하기 위해 Java 1.2부터 존재 합니다. |
hasMoreElements() 및 nextElement() 의 두 가지 메서드가 포함되어 있습니다. | hasNext(), next() 및 remove() 의 세 가지 메서드가 포함되어 있습니다. |
메서드 이름이 깁니다. | 메소드에는 짧고 간결한 이름이 있습니다. |
반복하는 동안 요소를 제거하는 방법이 없습니다. | 반복하는 동안 요소를 제거하려면 remove()해야 합니다 . |
Java 9에 추가된 asIterator() 는 Enumeration 상단에 Iterator 를 제공합니다 . 그러나 이 특별한 경우에는 remove() 가 UnsupportedOperationException 을 던집니다. | Java 8에 추가된 forEachRemaining() 은 나머지 요소에 대한 작업을 수행합니다. |
4. 결론
이 기사에서는 Enumeration 및 Iterator , 코드 예제를 사용하여 사용하는 방법, 그리고 이들 간의 다양한 차이점을 이해했습니다.
이 기사에 사용된 모든 코드 예제는 GitHub에서 사용할 수 있습니다 .