• 회원가입
  • 로그인
  • 구글아이디로 로그인

[class] Java - LinkedList (링크트리스트) - 반복 접근 최적화 된 유사 배열

1,422  
목차
  1. LinkedList 정의
  2. ArrayList / LinkedList 비교 (유사점/차이점)
  3. LinkedList 전용 메서드

 

LinkedList 정의

 

ArrayList 기능과 아주 유사한 자료 집합.

단, 약간의 차이점 존재. 아래서 따로 설명.

 


[예제] Hz.java

 

import java.util.LinkedList;


public class Hz { 

  public static void main(String[] args) { 

    LinkedList<String> codes = new LinkedList<String>();

    codes.add("HTML");

    codes.add("CSS");

    codes.add("JS");

    codes.add("PHP");

    System.out.println(codes);

  } 

}

 

결과값: [HTML, CSS, JS, PHP]

 

ArrayList / LinkedList 비교 (유사점/차이점)

[유사점]

 

1.

둘 다, 동일 유형의 많은 객체를 포함 가능한 컬렉션

 

2.

둘 다 List 인터페이스 구현하는 클래스라 동일 메서드 보유.

즉, (요소추가/요소변경/요소제거/List제거) 방식이 동일함.

 


[차이점]

 

ArrayList 클래스

 

① 작동방식:

내부에 일반 배열이 존재해, 요소 추가 시 배열에 배치됨.

만약, 배열이 충분히 크지 않으면 이전 배열 대체 위해 새롭고 더 큰 배열이 생성되고 이전 배열이 제거됨.

 

② 사용경우:

임의의 요소에 자주 접근할 필요가 있거나,

리스트 끝에 요소 추가/제거만 할 때 적합.

 

LinkedList 클래스

 

① 작동 방법:

"컨테이너"에 요소 저장. 리스트에는 첫 번째 컨테이너에 대한 링크가 있고 각 컨테이너에는 리스트의 다음 컨테이너에 대한 링크가 존재.

만약, 리스트에 요소 추가 위해 요소는 새 컨테이너에 배치되고 해당 컨테이너는 리스트의 다른 컨테이너 중 하나에 연결됨.

 

② 사용 경우:

반복문 통해 각 요소에 접근할 필요가 있거나,

자주 요소를 추가/제거해야 하는 경우에 적합.

 

 

LinkedList 전용 메서드

 

ArrayList는 임의의 요소에 자주 접근할 필요 있을 때 유리하나,

LiskedList는 요소 (추가/제거/접근) 관련 더 효율적 메서드 제공.

(예)

addFirst() 메서드 : 리스트 시작 부분에 요소 추가.

addLast() 메서드 : 리스트 끝 부분에 요소 추가.

removeFirst() 메서드 : 리스트 시작 부분의 요소 제거.

removeLast() 메서드 : 리스트 끝 부분의 요소 제거.

getFirst() 메서드 : 리스트 시작 부분의 요소에 접근.

getLast() 메서드 : 리스트 끝 부분의 요소에 접근.

 


addFirst() 메서드

리스트 시작 부분에 요소 추가.

 

(예제) Hz.java

 

import java.util.LinkedList;


public class Hz { 

  public static void main(String[] args) { 

    LinkedList<String> codes = new LinkedList<String>();

    codes.add("CSS");

    codes.add("JS");

    codes.add("PHP");

    codes.addFirst("HTML");

    System.out.println(codes);

  } 

}

 

결과값: [HTML, CSS, JS, PHP]


addLast() 메서드

리스트 끝 부분에 요소 추가.

 

(예제) Hz.java

 

import java.util.LinkedList;


public class Hz { 

  public static void main(String[] args) { 

    LinkedList<String> codes = new LinkedList<String>();

    codes.add("HTML");    

    codes.add("CSS");

    codes.add("JS");

    codes.addLast("PHP");

    System.out.println(codes);

  } 

}

 

결과값: [HTML, CSS, JS, PHP]


removeFirst() 메서드

리스트 시작 부분의 요소 제거.

 

(예제) Hz.java

 

import java.util.LinkedList;


public class Hz { 

  public static void main(String[] args) { 

    LinkedList<String> codes = new LinkedList<String>();

    codes.add("HTML");    

    codes.add("CSS");

    codes.add("JS");

    codes.add("PHP");

    codes.removeFirst();

    System.out.println(codes);

  } 

}

 

결과값: [CSS, JS, PHP]


removeLast() 메서드

리스트 끝 부분의 요소 제거.

 

(예제) Hz.java

 

import java.util.LinkedList;


public class Hz { 

  public static void main(String[] args) { 

    LinkedList<String> codes = new LinkedList<String>();

    codes.add("HTML");    

    codes.add("CSS");

    codes.add("JS");

    codes.add("PHP");

    codes.removeLast();

    System.out.println(codes);

  } 

}

 

결과값: [HTML, CSS, JS]


getFirst() 메서드

리스트 시작 부분의 요소에 접근.

 

(예제) Hz.java

 

import java.util.LinkedList;


public class Hz { 

  public static void main(String[] args) { 

    LinkedList<String> codes = new LinkedList<String>();

    codes.add("HTML");    

    codes.add("CSS");

    codes.add("JS");

    codes.add("PHP");

    System.out.println(codes.getFirst());

  } 

}

 

결과값: HTML


getLast() 메서드

리스트 끝 부분의 요소에 접근.

 

(예제) Hz.java

 

import java.util.LinkedList;


public class Hz { 

  public static void main(String[] args) { 

    LinkedList<String> codes = new LinkedList<String>();

    codes.add("HTML");    

    codes.add("CSS");

    codes.add("JS");

    codes.add("PHP");

    System.out.println(codes.getLast());

  } 

}

 

결과값: PHP



분류 제목
Keyword Java - instanceof 키워드 - 객체가 클래스(또는, 인터페이스)의 인스턴스인지 체크. (= 인스…
Keyword Java - int 키워드 - int 정수 자료형 변수 선언.
Keyword Java - interface 키워드 - 인터페이스 선언
Keyword Java - long 키워드 - long 자료형 정수 담는 변수 선언.
Keyword Java - module 키워드 △ - 모듈 선언.
Keyword Java - native 키워드 △ - 메서드가 동일 Java 소스 파일(다른 언어)에서 구현되지 않도록 지…
Keyword Java - new 키워드 - 새로운 객체 생성 (= new키워드 = 뉴키워드)
Keyword Java - package 키워드 - 패키지 선언.
Keyword Java - private 키워드 - 선언된 클래스 안에서만 접근 가능 설정.
Keyword Java - protected 키워드 - 같은 패키지 및 서브 클래스에서만 접근 가능 설정.
Keyword Java - public 키워드 - 다른 클래스의 접근을 허용. (= 퍼블릭)
Keyword Java - requires 키워드 △ - 모듈 내부에 필요한 라이브러리 지정. (Java 9 이상)
Keyword Java - return 키워드 - 메서드 실행 후, 값을 반환.
Keyword Java - short 키워드 - short 정수 자료형 선언.
Keyword Java - static 키워드 - 객체 생성 없이 바로 접근 가능한 (메서드/속성) 선언.
Keyword Java - strictfp 키워드 △ - 부동 소수점 계산 정밀도 및 반올림 제한.
Keyword Java - super 키워드 - 슈퍼클래스 (= 부모클래스) 객체 의미.
Keyword Java - switch 키워드 - switch 조건문 선언.
Keyword Java - synchronized 키워드 △ - 한 번에 하나의 스레드에서만 메소드에 접근 가능 지정하는 …
Keyword Java - this 키워드 - (메서드・생성자)에서 현재 객체 지칭. (= 디스)
5/10
목록
찾아주셔서 감사합니다. Since 2012