[java] Iterator 사용법과 성능 비교
Q. Iterator 사용법과 성능 비교
1. Iterator 의 사용 법은 아래와 같습니다.
class IteratorForTest { public static void main( String[] args ) { ArrayListlist = 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 ) { ArrayListlist = 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 를 받아서 사용하는 것이 더 좋다.