일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- pymongo
- NAS
- POST
- java
- atlas
- backend
- OOP
- flask
- PYTHON
- github
- portfolio
- mongodb
- openapi
- synology
- json
- CSS
- body
- javascript
- mysql
- flaskframework
- beautifulsoup
- frontend
- CRUD
- Crawling
- venv
- fetch
- requests
- Project
- get
- Algorithm
Archives
- Today
- Total
wisePocket
[JAVA] 기초문법 - 자료구조 컬렉션 Queue 생성과 메서드 기능 이용 연습 - 24 본문
Collection - Queue
원통, 통과하는 자료구조 Queue 복습해보고자 한다.
- 뚫려있는 원통같은 공간에 자료가 들어간다. 나올땐 처음 들어간 자료부터 나온다. First In First Out
- Interface라서 생성자가 없다. => LinkedList 또는 ArrayList로 객체를 만든다.
- 삽입 삭제시 배열 크기 재 조정때문에 추가 비용 및 연산이 발생. 그리고 공간 비효율성과 배열의 재배치가 일어남.
- LinkedList로 만드는 상황
- 처음, 중간 데이터 추가 삭제할 경우
- LinkedList의 remove 함수 설명을 보면 '빈 공간을 채울 필요가 없다'고 되어있다.
- 삭제하고 싶은 원소를 null로 변경하기만 하면 되기때문에 매우 효율적이다. 빠르다.
- ArrayList로 만드는 상황
- 순차적으로 추가 삭제 할 경우
- 맨 앞에 것을 꺼내야하는데, 꺼내고 나면 그 앞자리를 채우기 위해 모든 원소들을 한 칸씩 앞으로 옮겨야한다.(비효율적, 느림)
- 원소의 수가 많아지면 그만큼 비효율적인 것이다.
- Method
- .add(E e)
- .peek()
- .poll()
- 항상 공식 문서를 확인하고 정확한 명칭을 기억하려 노력하자
- https://docs.oracle.com/javase/8/docs/api/java/util/Queue.html
1. 기본 생성법
Queue<E> name = new LinkedList<E>();
Queue<E> name = new ArrayList<E>();
//Queue 선언 + (객체)생성 Queue<Integer> intQueue = new LinkedList<>();
2. Queue 메서드 사용
.add(E e) : element 추가(넣기)
//add(element) 메서드로 생성한 Queue에 element를 넣어보자. intQueue.add(1); intQueue.add(5); intQueue.add(9);
.peek() : 먼저 들어간 element 읽기 통과, 삭제X
//읽기(r) //peek(item) 메서드로 Queue에 item을 읽을 수 있다. //10 -> 15 -> 1 순서로 들어갔기 때문에, 맨 위에는 1이있다. 그래서 1이 나온다. basket같이 들어가기 때문에. System.out.println(intQueue.peek());
.poll() : 먼저 들어간 element 빼기, 반환 및 삭제//추출(r-d) //poll() 메서드로 Queue에 추가한 element를 들어간 순서대로 꺼내면서 제거 한다. while(!intQueue.isEmpty()){ System.out.println(intQueue.poll()); } //1-5-9순서로 넣었는데 1-5-9 순서로 나왔다.
'Java & Algorithm > Java' 카테고리의 다른 글
[JAVA] 기초문법 - 자료구조 컬렉션 Map 생성과 메서드 기능 이용 연습 - 26 (0) | 2023.07.27 |
---|---|
[JAVA] 기초문법 - 자료구조 컬렉션 Set 생성과 메서드 기능 이용 연습 - 25 (0) | 2023.07.27 |
[JAVA] 기초문법 - 자료구조 컬렉션 Stack 생성과 메서드 기능 이용 연습 - 23 (0) | 2023.07.27 |
[JAVA] 기초문법 - 자료구조 컬렉션 LinkedList 생성과 메서드 기능 이용 연습 - 22 (0) | 2023.07.27 |
[JAVA] 기초문법 - 자료구조 컬렉션 ArrayList 생성과 메서드 기능 이용 연습 - 21 (0) | 2023.07.27 |