본문 바로가기

프로그래밍/JAVA

Vector vs. LinkedList

import java.util.*; 

public class VectorLinkedListTest { 
public static void main(String args[]) { 
Vector v = new Vector(1000000); 
LinkedList ll = new LinkedList(); 

System.out.println("= 순차적으로 추가하기 ="); 
System.out.println("Vector :"+add1(v)); 
System.out.println("LinkedList :"+add1(ll)); 

System.out.println(); 
System.out.println("= 중간에 추가하기 ="); 
System.out.println("Vector :"+add2(v)); 
System.out.println("LinkedList :"+add2(ll)); 

System.out.println(); 
System.out.println("= 중간에서 삭제하기 ="); 
System.out.println("Vector :"+remove2(v)); 
System.out.println("LinkedList :"+remove2(ll)); 

System.out.println(); 
System.out.println("= 순차적으로 삭제하기 ="); 
System.out.println("Vector :"+remove1(v)); 
System.out.println("LinkedList :"+remove1(ll)); 


public static long add1(List list) { 
long start = System.currentTimeMillis(); 
for(int i=0; i<100000;i++) list.add(i+""); 
long end = System.currentTimeMillis(); 
return end - start; 


public static long add2(List list) { 
long start = System.currentTimeMillis(); 
for(int i=0; i<1000;i++) list.add(500, "X"); 
long end = System.currentTimeMillis(); 
return end - start; 


public static long remove1(List list) { 
long start = System.currentTimeMillis(); 
for(int i=list.size()-1; i > 0;i--) list.remove(i); 
long end = System.currentTimeMillis(); 
return end - start; 


public static long remove2(List list) { 
long start = System.currentTimeMillis(); 
for(int i=0; i<1000;i++) list.remove(i); 
long end = System.currentTimeMillis(); 
return end - start; 



/* 
---------- java ---------- 
= 순차적으로 추가하기 = 
Vector :591 
LinkedList :721 

= 중간에 추가하기 = 
Vector :3465 
LinkedList :10 

= 중간에서 삭제하기 = 
Vector :3415 
LinkedList :10 

= 순차적으로 삭제하기 = 
Vector :10 
LinkedList :50 

Output completed (8 sec consumed) - Normal Termination 
*/
 

이 작성자의 게시글 

 

출처 http://cafe.naver.com/javachobostudy