program/java

[java] Iterator 사용법과 성능 비교

베짱2 2012. 10. 7. 16:34
반응형

Q. Iterator 사용법과 성능 비교




1. Iterator 의 사용 법은 아래와 같습니다.


class IteratorForTest
{
	public static void main( String[] args )
	{
		ArrayList list = new ArrayList();
		for( int i = 0; i < 20; i++ )
			list.add( i );

		for( Iterator itr = list.iterator(); itr.hasNext(); )
			System.out.print( list.get( itr.next() ) + " " );
	}
}


class IteratorWhileTest
{
	public static void main( String[] args )
	{
		ArrayList list = new ArrayList();
		for( int i = 0; i < 20; i++ )
			list.add( i );

		Iterator itr = list.iterator();
		while( itr.hasNext() )
			System.out.print( list.get( itr.next() ) + " " );
	}
}

Iterator 를 활용해서 list의 모든 값을 가져온다.




2. Iterator VS List 의 Size 이용하기


for( Iterator<Integer> itr = list.iterator(); itr.hasNext(); )

{

list.get( itr.next() );

}

 1 : 0.309012652(sec)

 2 : 0.309870762(sec)

 3 : 0.310434898(sec)

 4 : 0.311340917(sec)

 5 : 0.312230778(sec)

 6 : 0.312908024(sec)

 7 : 0.313480948(sec)

 8 : 0.314196465(sec)

 9 : 0.314853301(sec)

10 : 0.31523232(sec)

int size = list.size();

for( int i = 0; i < size; i++ )

{

list.get( i );

}

 1 : 0.041885812(sec) 乃 Best

 2 : 0.041918697(sec)

 3 : 0.042251792(sec)

 4 : 0.04225406(sec)

 5 : 0.042269085(sec)

 6 : 0.042285244(sec)

 7 : 0.042312175(sec)

 8 : 0.042338539(sec)

 9 : 0.042373124(sec)

10 : 0.042443145(sec)




3. 결론


Iterator 는 자동으로 Index 를 관리해주기 때문에,


사용에 편리함이 있을수 있으나,


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


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


반응형