728x90

[LinkedList]

  • ArrayLsit와는 다르게 각각의 노드를 연결하는 방식을 사용한다.
    • 여기서 노드란 실제로 데이터가 저장되는 그릇과 같은 것
  • 데이터를 삭제하고 추가하는 것이 용이하다.
  • 위치에 상관 없이 데이터를 삭제 및 추가 하는데 변경되는 노드만 연결해주면 된다.
  • ArrayList는 검색이 많은 경우에 사용되고, LinkedList는 데이터의 추가 / 삭제가 많을 경우 사용된다. 

(예시) 의자 없이 사람들이 손을 잡고 있는데 중간에 사람이 들어가려하면 잡고 있던 손을 놓고 그 자리로 들어갈 수 있다.

 

[LinkedList선언 방법]

 public static void main(String[] args) {
    LinkedList<String> list = new LinkedList<>();
 }
  • <> 안에는 Integer, String, Character, Student, Phone 등과 같은 다양한 타입이 들어 올 수 있다.  

[LinkedList데이터 추가]

 public static void main(String[] args) {
    LinkedList<String> list = new LinkedList<>();
    
    // 데이터 추가
    list.add("자바");
    list.add("파이썬");
    list.addFrist("C언어");
    list.addLast("자바스크립트");
 }
  • add(Object)를 사용하여 인덱스 마지막에 데이터를 추가한다.
  • add(Object, index)를 사용하여 지정한 인덱스에 값을 추가할 수 있다. 
  • addFirst()를 사용하여 첫번째에 데이터를 추가할 수 있다.
  • addLast()를 사용하여 마지막에 데이터를 추가할 수 있다. 

 

[LinkedList데이터 조회]

 public static void main(String[] args) {
    LinkedList<String> list = new LinkedList<>();

    // 데이터 추가
    list.add("자바");
    list.add("파이썬");

    // 데이터 조회
    System.out.println(list.get(0));
    System.out.println(list.get(1));
    System.out.println(list.getFirst());
    System.out.println(list.getLast());
 }
  • get(index)를 사용하여 해당 인덱스의 데이터를 조회할 수 있다. 
  • getFrist()를 사용하여 첫번째 데이터를 조회할 수 있다.
  • getLast()를 사용하여 마지막 데이터를 조회할 수 있다.  
  • 반복문을 사용하여 해당 인덱스 혹은 전체 데이터를 조회할 수 있다.

 

[LinkedList데이터 삭제]

 public static void main(String[] args) {
    LinkedList<String> list = new LinkedList<>();

    // 데이터 추가
    list.add(1);
    list.add(2);

    // 데이터 삭제
    list.remove(1);
    list.clear();
    list.removeFirst(); // 처음 데이터
    list.removeLast(); // 마지막 데이터
 }
  • remove()를 사용하여 인덱스 혹은 값을 직접 입력하여 삭제할 수 있다.
  • removeFirst()를 사용하여 처음 데이터를 삭제할 수 있다.
  • removeLast()를 사용하여 마지막 데이터를 삭제할 수 있다.       
  • clear()를 사용하여 값 전체를 삭제할 수 있다.  

 

[LinkedList데이터 변경]

 public static void main(String[] args) {
    LinkedList<String> list = new LinkedList<>();
    
    // 데이터 추가
    list.add(1);
    list.add(2);

    // 데이터 변경
    list.set(0, 3);
    list.set(1, 5);
 }
  • set(index, Object)를 사용하여 값을 변경할 수 있다. 
  • 데이터를 변경하려면 해당 데이터의 인덱스를 알아야 한다. 

 

[LinkedList데이터 검색하기]

 public static void main(String[] args) {
    LinkedList<String> list = new LinkedList<>();

    // 데이터 추가
    list.add("자바");
    list.add("파이썬");

    // 데이터 검색
    if(list.contains("자바")){
        System.out.println("글자 검색하기");
    }
 }
  • contains()를 사용하여 원하는 데이터를 검색할 수 있다. 

 

[LinkedList 크기 구하기]

 public static void main(String[] args) {
    LinkedList<String> list = new LinkedList<>();

    // 데이터 추가
    list.add("자바");
    list.add("파이썬");

    // 크기 구하기
    System.out.println(list.size());
 }
  • size()를 사용하여 해당 리스트의 크기를 구할 수 있다.
728x90

+ Recent posts