큐(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(); /비어있는지 확인
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<int[]> dq = new ArrayDeque<int[]>(); //Deque 배열은 이렇게
2. Deque 함수
[삽입]
dq.offer(1); //큐랑 같음 dq.offerFirst(1); //앞으로 삽입(큐와 반대) dq.offerLast(1); // 뒤로 삽입
dq.offer(1); //큐랑 같음
dq.offerFirst(1); //앞으로 삽입(큐와 반대)
dq.offerLast(1); // 뒤로 삽입
1) add, offer, push(push는 first, Last 사용 불가) 사용가능
2) 그래도 큐니까 offer로 하는게 안 헷갈림
[배열 삽입]
dq.offer(new int[]{5,4,1,....,});
dq.offer(new int[]{5,4,1,....,});
[추출]
dq.poll(1); //큐랑 같음 dq.pollFirst(1); //앞에꺼 추출 dq.pollLast(1); //뒤에꺼 추출(큐와 반대) dq.peek() //똑같이 first, Last 사용가능 dq.get() //peek()랑 똑같음
dq.poll(1); //큐랑 같음
dq.pollFirst(1); //앞에꺼 추출
dq.pollLast(1); //뒤에꺼 추출(큐와 반대)
dq.peek() //똑같이 first, Last 사용가능
dq.get() //peek()랑 똑같음
덱은 Stack 과 Queue의 결합이기 때문에
push, pop도 가능하다.
'Java > Java 문법' 카테고리의 다른 글
[JAVA] 컬렉션 프레임워크 개념(List, Set, Map) (0) | 2021.04.28 |
---|---|
[JAVA] 자바 Math 메소드 정리 (수학 함수 정리) (0) | 2021.04.26 |
[JAVA] 자바 iterator 반복자 / iterator 와 ListIterator (0) | 2021.04.19 |
[java] 자바 출력 스트림 (StringBuider 와 bufferedWriter 차이점, bufferedWriter 한계) (0) | 2021.04.19 |
[JAVA] 스택 Stack (0) | 2021.04.19 |