Posts Java LinkedList
Post
Cancel

Java LinkedList

LinkedList

Queue와 List 인터페이스를 구현한 클래스

사용방법

1
Queue<E> queue = new LinkedList<E>();

메소드

boolean add(E e) / boolean add(int index, E e)

객체를 맨뒤에 추가. 인덱스를 통해 추가하고 싶은 위치도 지정할 수 있다.

void clear()

리스트에 존재하는 모든 객체를 제거

boolean contains(Object o)

해당 객체가 존재하면 true 반환

E peek()

첫번째 객체(가장 먼저 넣은 객체)를 반환한다. 제거하지 않는다.

E poll()

첫번째 객체(가장 먼저 넣은 객체)를 제거하고 반환한다.

boolean remove(int index) / boolean remove(Object o)

리스트에서 해당 객체를 제거한다. 인덱스를 지정할 수도 있고, 객체를 지정할 수도 있다.

int size()

리스트에 존재하는 객체의 개수를 반환한다.

예시

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import java.util.LinkedList;

public class QueueExample2 {

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

        // 데이터 추가
        integerList.offer(1);
        integerList.offer(2);
        integerList.add(3);
        integerList.add(4);

        // 데이터가 존재하지 않을때까지 삭제, 출력
        while (!integerList.isEmpty()) {
            System.out.println(integerList.poll());
        }
    }
}

출력

1
2
3
4
1
2
3
4

remove 예시

리스트에서 숫자 “3”을 제거하려면 어떻게 할까?

1
integerList.remove(3);

다음을 사용하여 제거 할 경우에는 3 번째 인덱스로 인식되기 때문에 출력값은 다음과 같아진다.

출력

1
2
3
1
2
3

숫자를 객체로 인식하게 하기 위해서는 다음과 같이 해준다.

1
integerList.remove(Integer.valueOf(3));

출력

1
2
3
1
2
4

Integer.valueOf()는 정수형 인스턴스로 반환해주는 메소드이다.


add와 offer의 차이

offer()와 add()는 둘 다 데이터를 리스트에 추가하는 동일한 기능을한다. 그렇지만 차이점은 실패 시, add는 예외를 발생하고, offer()은 false를 반환한다.

동일한 예로 다음과 같은게 있다.

예외발생
  • add()
  • remove()
  • element()
false 반환
  • offer()
  • poll()
  • peek()

linkedList Vs arrayList

  • 객체를 추가하거나 삭제할 때 arrayList보다 빠르다.
  • 요소에 대한 접근속도가 느리다.
This post is licensed under CC BY 4.0 by the author.