LinkedList는 다음과 같이 선언한다.
LinkedList<String> list = new LinkedList<>();
<> 표시는 제네릭이라고 하는데 타입을 적어주어야 한다. 자료형에 상관없이 모든 타입을 넣고 싶다면 "Object" 타입을 , 그게 아니라면 자료형들중에 알맞은 타입을 명시하면 된다.
제네릭은 Auto-UnBoxing 기능이 없으므로 int,long과 같이 명시하면 안되고, Integer/Long과 같이 명시하여 주어야한다.
LinkedList에 값을 넣어주고, for문을 통해 LinkedList 1번 인덱스에 "C#"이라는 내용을 추가하는 것을 천만번 반복하게 하고,
for문이 실행되기 전과 후의 시간의 차이를 계산해서, processing time을 출력해보았다.
import java.util.Arrays; import java.util.LinkedList; public class JavaEx28 { public static void main(String[] args) { LinkedList<String> list = new LinkedList<>(); list.addAll(Arrays.asList("java","python","C++")); long before = System.currentTimeMillis(); System.out.println("before : " + before); for(int i=0; i<10000000; i++) { list.add(1, "C#"); } long after = System.currentTimeMillis(); System.out.println("after : " + after); System.out.println("processing time : " + (after-before)); }
for문의 반복횟수가 많지 않은 경우 before Time 과 After Time의 차이가 0이 되는 경우가 있다.
그렇기 때문에 100만번 이상의 횟수로 반복하니까 조금 차이가 나서 출력이 제대로 되었다.
output: