03_LinkedList

charl hi·2022년 6월 20일
0

자바의정석2

목록 보기
3/13

링크텍스트

성능비교 테스트

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;

public class ArrayListLinkedListTest {

	public static void main(String[] args) {
		ArrayList al = new ArrayList(2000000);	//추가할 데이터를 고려해 충분히 잡아야 함
		LinkedList ll = new LinkedList();
		
		System.out.println("=== 순차적으로 추가하기 ===");
		System.out.println("ArrayList :: "+addFromFirst(al));
		System.out.println("LinkedList :: "+addFromFirst(ll));
		System.out.println();
		System.out.println("=== 중간에 추가하기 ===");
		System.out.println("ArrayList :: "+addFrom500(al));
		System.out.println("LinkedList :: "+addFrom500(ll));
		System.out.println();
		System.out.println("=== 중간에 삭제하기 ===");
		System.out.println("ArrayList :: "+removeMiddle(al));
		System.out.println("LinkedList :: "+removeMiddle(ll));
		System.out.println();
		System.out.println("=== 순차적으로 삭제하기 ===");
		System.out.println("ArrayList :: "+removeFromEnd(al));
		System.out.println("LinkedList :: "+removeFromEnd(ll));
		

	}
	
	public static long addFromFirst(List list) {
		long start = System.currentTimeMillis();
		for(int i=0; i<1000000; i++)
			list.add(i+"");
		long end = System.currentTimeMillis();
		return end - start;
	}
	
	public static long addFrom500(List list) {
		long start = System.currentTimeMillis();
		for(int i=0; i<10000; i++)
			list.add(500, "X");
		long end = System.currentTimeMillis();
		return end - start;
	}
	
	public static long removeFromEnd(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 removeMiddle(List list) {
		long start = System.currentTimeMillis();
		for(int i=0; i<10000; i++)
			list.remove(i);
		long end = System.currentTimeMillis();
		return end - start;
	}

}

->

=== 순차적으로 추가하기 ===
ArrayList :: 65
LinkedList :: 233

=== 중간에 추가하기 ===
ArrayList :: 1725
LinkedList :: 10

=== 중간에 삭제하기 ===
ArrayList :: 1616
LinkedList :: 69

=== 순차적으로 삭제하기 ===
ArrayList :: 6
LinkedList :: 21


접근시간 테스트

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;

public class ArrayListLinkedListTest2 {

	public static void main(String[] args) {
		ArrayList al = new ArrayList(1000000);
		LinkedList ll = new LinkedList();
		add(al);
		add(ll);
		
		System.out.println("=== 접근시간 테스트 ===");
		System.out.println("ArrayList :: "+accesss(al));
		System.out.println("LinkedList :: "+accesss(ll));

	}

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

->

=== 접근시간 테스트 ===
ArrayList :: 0
LinkedList :: 92

0개의 댓글