Java

LinkedList

langsamUndStetig 2022. 5. 27. 19:59
import java.util.*;

public class bucky {
  public static void main(String[] args) {

    String[] things = {"apples", "noobs", "eggs", "bacon", "goATS"};
    List<String> list1 = new LinkedList<String>();
    for(String thing : things) {
      list1.add(thing);
    }

    String[] things2 = {"sausage", "bacon", "goats", "harrypotter"};
    List<String> list2 = new LinkedList<>();
    for(String thing : things2) {
      list2.add(thing);
    }

    list1.addAll(list2);
    list2 = null;

    printMe(list1);
    removeStuff(list1, 2, 5);
    printMe(list1);
  reverseMe(list1);
  }
  private static void printMe(List<String> l) {
    for(String b : l){
      System.out.printf("%s ", b);
    }
    System.out.println();
  }

  private static void removeStuff(List<String> l, int from, int to) {
  	//sublist를 사용해서 from ~ to-1 의 값을 끄집어낸 후, clear로 제거
    l.subList(from, to).clear();
  }
  private static void reverseMe(List<String> l) {
    ListIterator<String> li = l.listIterator(l.size());
    while(li.hasPrevious()){
      System.out.printf("%s ", li.previous());
    }
  }
}

LinkedList

장점

1. 크기가 정해져 있지 않음. (메모리가 허락하는 한 늘려도 됨)

2. 중간에 값을 변경, 추가, 삭제가 ArrayList에 비해 빠름

 

단점

1. index 찾는 게 느림