JAVA Collection ArrayDeque

Walter Mitty·2022년 5월 19일
0

JAVA

목록 보기
19/21

ArrayDeque

이 자료구조는 양쪽에서 삽입과 반환이 가능한 구조다.
즉, 양 끝에서 삽입과 삭제가 이루어진다.
pop, push, poll 기능 다 가능

ArrayDeque 살펴보기

ArrayDeque<Integer> arrayDeque = new ArrayDeque<>();
arrayDeque.addFirst(e:1);
arrayDeque.addFirst(e:2);
arrayDeque.addFirst(e:3);
arrayDeque.addFirst(e:4);
System.out.println(arrayDeque);

[4, 3, 2, 1]

우리가 넣은 반대 순서로 나오게 되는데, .addFirst로 앞자리에 넣을거야! 하는데 계속 앞자리에 넣으니까 우선예약 마냥
앞자리 가로채는 것.


뒤에다 넣기

ArrayDeque<Integer> arrayDeque = new ArrayDeque<>();
arrayDeque.addFirst(e:1);
arrayDeque.addFirst(e:2);
arrayDeque.addFirst(e:3);
arrayDeque.addFirst(e:4);
System.out.println(arrayDeque);

arrayDeque.addLast(e:0);
System.out.println(arrayDeque);

[4, 3, 2, 1, 0]


offerFirst

ArrayDeque<Integer> arrayDeque = new ArrayDeque<>();
arrayDeque.addFirst(e:1);
arrayDeque.addFirst(e:2);
arrayDeque.addFirst(e:3);
arrayDeque.addFirst(e:4);
System.out.println(arrayDeque);

arrayDeque.addLast(e:0);
System.out.println(arrayDeque);

arrayDeque.offerFirst(e:10);
System.out.println(arrayDeque);

[10, 4, 3, 2, 1, 0]

.addFirst랑 다른 .offerFirst는 que의 크기에 문제가 생길 때 false라는 리턴값을 리턴한다.
크기에 문제가 생길 때, 만약 addFrist를 하면 exception이 난다.


offerLast

ArrayDeque<Integer> arrayDeque = new ArrayDeque<>();
arrayDeque.addFirst(e:1);
arrayDeque.addFirst(e:2);
arrayDeque.addFirst(e:3);
arrayDeque.addFirst(e:4);
System.out.println(arrayDeque);

arrayDeque.addLast(e:0);
System.out.println(arrayDeque);

arrayDeque.offerFirst(e:10);
System.out.println(arrayDeque);
arrayDeque.offerLast(e:-1);
System.out.println(arrayDeque);

[10, 4, 3, 2, 1, 0, -1]


element를 추가하고 싶을 때,

ArrayDeque<Integer> arrayDeque = new ArrayDeque<>();
arrayDeque.addFirst(e:1);
arrayDeque.addFirst(e:2);
arrayDeque.addFirst(e:3);
arrayDeque.addFirst(e:4);
System.out.println(arrayDeque);

arrayDeque.addLast(e:0);
System.out.println(arrayDeque);

arrayDeque.offerFirst(e:10);
System.out.println(arrayDeque);
arrayDeque.offerLast(e:-1);
System.out.println(arrayDeque);

arrayDeque.push(e:22);
System.out.println(arrayDeque);

[22, 10, 4, 3, 2, 1, 0, -1]

22가 앞으로 들어간다.


element를 꺼내 삭제하고 싶을 때,

ArrayDeque<Integer> arrayDeque = new ArrayDeque<>();
arrayDeque.addFirst(e:1);
arrayDeque.addFirst(e:2);
arrayDeque.addFirst(e:3);
arrayDeque.addFirst(e:4);
System.out.println(arrayDeque);

arrayDeque.addLast(e:0);
System.out.println(arrayDeque);

arrayDeque.offerFirst(e:10);
System.out.println(arrayDeque);
arrayDeque.offerLast(e:-1);
System.out.println(arrayDeque);

arrayDeque.push(e:22);
System.out.println(arrayDeque);

arrayDeque.pop();
System.out.println(arrayDeque);

[10, 4, 3, 2, 1, 0, -1]

22를 꺼내서 삭제함.


poll/pollFirst/pollLast 도 가능
그냥 poll하면 맨 앞에있는거 하나 꺼내서 삭제

peek/peekFirst/peekLast 도 가능
그냥 peek하면 맨 앞에있는거 하나 꺼내서 리턴

size / clear / empty / isEmpty 다 가능

0개의 댓글