Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- CS
- 프로그래머스
- 이진 탐색(binary search)
- aop
- 코딩
- 면접(java
- cs 공부)준비
- Java
- 코딩문제
- 개발자 취업
- wil
- 정렬 알고리즘(sort algorithm)
- HTML
- 코딩테스트 준비
- GIT
- css
- 메서드
- 회고
- 99클럽
- 자료구조
- ArrayList
- 코딩공부
- Til
- Spring
- Entity
- github
- 배열
- Grafana
- 항해99
- 자바
Archives
- Today
- Total
hayu's 개발 일지
99클럽 코테 스터디 9일차 TIL + Queue 메서드 본문
학습 키워드
- Queue
공부한 내용
Queue 사용(메서드)
Queue 선언
- 자바에서 큐는 LinkesList를 활용하여 생성해야 한다.
→ Queue와 LinkedList가 다 import되어 있어야 사용 가능하다.
import java.util.LinkedList; //import
import java.util.Queue; //import
Queue<Integer> queue = new LinkedList<>(); //int형 queue 선언, linkedlist 이용
Queue<String> queue = new LinkedList<>(); //String형 queue 선언, linkedlist 이용
Queue 값 추가 - add() / offer()
- 자바에서 큐에 값을 추가 하고 싶다면 add(value) 또는 offer(value)라는 메서드를 활용하면 된다.
- add(value) 메소드의 경우 만약 삽입에 성공하면 true를 반환하고, 큐에 여유 공간이 없어 삽입에 실패하면 IllegalStateException을 발생시킨다. queue에 값을 계속해서 추가해나간다면 아래 그림과 같은 형태로 데이터가 쌓이게 됩니다.
Queue<Integer> queue = new LinkedList<>(); //int형 queue 선언
queue.add(1); // queue에 값 1 추가
queue.add(2); // queue에 값 2 추가
queue.offer(3); // queue에 값 3 추가
Queue 사이즈 - size()
Queue<Integer> queue = new LinkedList<>(); //int형 queue 선언
queue.size();
Queue 값 삭제 - poll() / remove()
- 큐에서 값을 제거하고 싶다면 poll()이나 remove() 메서드를 활용할 수 있다. poll()함수는 큐가 비어있으면 null을 반환한다.
- remove()를 하면 가장 앞쪽에 있는 원소의 값이 제거된다.
- 큐의 모든 요소를 제거하기 위해서는 clear()메서드를 사용하면 된다.
Queue<Integer> queue = new LinkedList<>(); //int형 queue 선언
queue.offer(1); // queue에 값 1 추가
queue.offer(2); // queue에 값 2 추가
queue.offer(3); // queue에 값 3 추가
queue.poll(); // queue에 첫번째 값을 반환하고 제거 비어있다면 null
queue.remove(); // queue에 첫번째 값 제거
queue.clear(); // queue 초기화
Queue 에서 가장 먼저 들어간 값 출력 - peek()
- 큐에서 첫 번째로 저장된 값을 참조하고 싶을 때는 peek() 메서드를 사용한다.
Queue<Integer> queue = new LinkedList<>(); //int형 queue 선언
queue.offer(1); // queue에 값 1 추가
queue.offer(2); // queue에 값 2 추가
queue.offer(3); // queue에 값 3 추가
queue.peek(); // queue의 첫번째 값 참조
Queue 해당 원소 확인 - contains()
- 반환 값(boolean): 해당 값이 존재할 때 true / 해당 값이 없을 때 false 반환한다.
Queue<Integer> queue = new LinkedList<>(); //int형 queue 선언
queue.contains(1);
Queue 공백인지 확인 - isEmpty()
- 반환 값(boolean): 공백 큐이면 true / 공백 큐가 아니면 false 반환한다.
Queue<Integer> queue = new LinkedList<>(); //int형 queue 선언
queue.isEmpty();
회고
발생한 문제
- 코딩 문제 풀이 중에 Queue에 대한 공부가 부족하여 문제 풀이가 막히는 문제가 생겼다.
- 큐에 대한 공부를 진행했지만 사용 메서드에 대한 공부가 부족해서 공부를 진행했다.
해결 방법
- 큐의 메서드를 공부했다.
알게된 내용
- 큐에 대한 메서드를 알게 되었고, 자바에서 큐는 LinkesList를 활용하여 생성해야 한다는 사실을 알게 되었다.
참고 자료
- https://imyena.tistory.com/99
'자료구조&알고리즘' 카테고리의 다른 글
99클럽 코테 스터디 11일차 TIL + HashMap (0) | 2024.05.31 |
---|---|
99클럽 코테 스터디 10일차 TIL + Hash Table (0) | 2024.05.30 |
99클럽 코테 스터디 8일차 TIL + Queue (0) | 2024.05.28 |
99클럽 코테 스터디 7일차 TIL + Stack 메서드 (0) | 2024.05.27 |
99클럽 코테 스터디 6일차 TIL + Stack (0) | 2024.05.26 |