Binary World

JAVA CLASS : List - LinkedList 클래스 본문

개발자의 길/JAVA

JAVA CLASS : List - LinkedList 클래스

모쿠 2017. 1. 9. 16:26

<LinkedList>


* Collection<E>:자료(데이터)를 저장하기 위한 generic 클래스

 |__ List<E>, Set<E>


* List<E>:

  1. 자료들이 저장되는 순서가 중요

  2. 중복된 값들의 저장을 허용


* List<E>

 |__ ArrayList<E>, LinkedList<E>


* ArrayList<E>:

  1. 내부적으로 배열 자료 구조를 사용

  2. 저장 용량을 늘리는데 많은 시간이 소요 - 단점

  3. 저장된 데이터를 삭제하는 데도 많은 시간이 소요 - 단점

  4. 데이터를 참조(검색)할 때 매우 빠름 - 장점


* LinkedList<E>:

  1. 내부적으로 Linked List 자료 구조를 사용

  2. 저장 용량을 늘리는 과정이 매우 간단 - 장점

  3. 저장된 데이터를 삭제하는 과정도 매우 간단 - 장점

  4. 데이터를 참조(검색)할 때 매우 느림 - 단점


* ArrayList<E>, LinkedList<E>에서 사용되는 메소드들:

  add(element), get(index), set(index, element), remove(index)


<프로그램 코드>

* CollectionMain03.java

package edu.java.collection03;


import java.util.LinkedList;

import java.util.List;


public class CollectionMain03 {


public static void main(String[] args) {

// String을 저장할 수 있는 LinkedList 객체 생성

List<String> list = new LinkedList<>(); // 다형성

// LinkedList<String> list = new LinkedList<>();


// LinkedList에 데이터 추가: add()

list.add("김하진");

list.add("소지안");

list.add("이애심");

list.add("김재원");


// LinkedList에서 데이터 검색: get()

for (int i = 0; i < list.size(); i++) {

System.out.println(i + " : " + list.get(i));

}


// LinkedList에서 데이터 변경: set()

list.set(2, "안지영");

System.out.println("--- 변경 후 ---");

for (String name : list) {

System.out.println(name);

}

// LinkedList에서 데이터 삭제: remove()

list.remove(2);

System.out.println("--- 삭제 후 ---");

for (int i = 0; i < list.size(); i++){

System.out.println(i + " : " + list.get(i));

}


} // end main()


} // end class CollectionMain03 



* 출력화면


0 : 김하진

1 : 소지안

2 : 이애심

3 : 김재원

--- 변경 후 ---

김하진

소지안

안지영

김재원

--- 삭제 후 ---

0 : 김하진

1 : 소지안

2 : 김재원 


Comments