본문 바로가기

old/Programming

자바에서 iterator란?

반응형

정의

collection 프레임웍에 있는 데이터 스트럭쳐를 사용하기 위한 인터페이스
iterator를 사용해서 arraylist든 linkedlist든 hashmap 모두 구분없이 읽어오는게 가능

사용하는 이유

여러명이서 개발하는 커다란 프로그램의 경우 여러가지 데이터 스트럭쳐를 섞어서 사용하게 되고, 이때 읽어오기 쉽게하기 위해 iterator를 사용합니다.

계층구조

메서드

hasNext()
next()
remove()

메서드 예제

List list = new ArrayList();// arrayList
list.add("1");
list.add("2");
list.add("3");

Iterator <string> itr = list.iterator(); 

while (itr.hasNext()) { 
 String str = itr.next(); 
 System.out.println(str);
}

iterator 예제

@Test
    public void multipleIterators() {
        final Iterator<Integer> a = Arrays.asList(1, 2, 3, 4, 5).iterator();
        final Iterator<Integer> b = Arrays.asList(6).iterator();
        final Iterator<Integer> c = new ArrayList<Integer>().iterator();
        final Iterator<Integer> d = new ArrayList<Integer>().iterator();
        final Iterator<Integer> e = Arrays.asList(7, 8, 9).iterator();

        final Iterator<Integer> singleIterator = Iterators.singleIterator(Arrays.asList(a, b, c, d, e));

        assertTrue(singleIterator.hasNext());
        for (Integer i = 1; i < 10; i++) {
            assertEquals(i, singleIterator.next());
        }
        assertFalse(singleIterator.hasNext());
    }
반응형