[java] 자바, 큐 (Queue, Deque)

2216 단어 Java알고리즘Java

큐(Queue)

  • FIFO(First in First out)
    쉽게 말해서 큐는, 먼저들어간 데이터가 먼저 나가는 자료구조 형태이다.(선입선출)

1. java에서의 큐

(클래스 사용법)

Queue< E > q = new LinkedList< E >();

E : 자료형

2. 큐 함수

[삽입]

q.offer(Data);

[추출]

q.poll();		//맨 앞에 데이터 추출 후 삭제
q.peek();		//맨 앞에 데이터 조회만(삭제 x)

[크기]

q.size();
q.isEmpty();		//비어있는지 확인

덱,데크(Deque)

  • Stack + Queue
    1) 스택과 큐의 혼합형(?)
    2) 스택의 장점과 큐의 장점을 둘다 사용할 수 있다.
    3) 데이터의 추출과 삭제를 앞, 뒤로 할 수 있다.
    4) 추천

1. java에서의 덱

(클래스 정의)

Deque< E > dq = new ArrayDeque< E >();

[예시]

Deque<Integer> dq = new ArrayDeque<Integer>();

//Deque 배열은 이렇게
Deque<int[]> dq = new ArrayDeque<int[]>();

2. Deque 함수

[삽입]

dq.offer(1);		//큐랑 같음
dq.offerFirst(1);	//앞으로 삽입(큐와 반대)
dq.offerLast(1);	// 뒤로 삽입
  • add, offer, push(push는 first, Last 사용 불가) 사용가능
  • 그래도 큐니까 offer로 하는게 안 헷갈림

[배열 삽입]

dq.offer(new int[]{5,4,1,....,});

[추출]

dq.poll(1);			//큐랑 같음
dq.pollFirst(1);	//앞에꺼 추출
dq.pollLast(1);		//뒤에꺼 추출(큐와 반대)

dq.peek()		//똑같이 first, Last 사용가능
dq.get()		//peek()랑 똑같음
  • 덱은 Stack 과 Queue의 결합이기 때문에
  • push, pop도 가능하다.

좋은 웹페이지 즐겨찾기