PriorityQueue ? - Queue 인터페이스 구현체 중 하나로 순서와 상관없이 우선순위가 높은 순으로 꺼내진다. - 저장공간으로 배열을 사용하며, 각 요소를 '힙(heap)'이라는 자료구조의 형태로 저장 ** 힙: 이진트리의 한 종류로 가장 큰 값이나 가장 작은 값을 빠르게 찾을 수 있는 특징이있다. : JVM 힙 영역 X Queue pq = new PriorityQueue(); pq.offer(3); pq.offer(1); pq.offer(4); pq.offer(5); pq.offer(2); Object obj = null; while((obj = pq.poll()) != null){ System.out.println(obj); } //== 출력 결과 ==// 1 2 3 4 5 다음 출력결과에..
LikedList 등장 ? 기존에 배열은 구조가 간단하며 연결되어 있기에 조회 속도가 빠르다는 장점이 있다. 그러나 상황에 따른 다음과 같은 단점이 존재한다. 배열은 크기가 고정되면 변경할 수 없다. 비순차적인 위치 데이터를 삭제/추가하려면 배열 안에 요소들의 이동이 발생한다. LikedList는 Array에 이와같은 단점을 보완하기 위하여 나왔다. LikedList란 ? LikedList는 객체를 사용하여 내부적으로 값과 다음 객체의 주소를 갖고 있기에 실제로 물리적인 연결이 아닌 주소 값을 참조함으로 논리적인 연결형태의 List형 자료구조이다. 이와같은 LikedList에서 데이터를 추가/삭제하기 위해서는 데이터의 순서에 따른 객체 사이의 참조를 변경함으로 비순서적인 데이터 추가 / 삭제에 유연하게 ..
ArrayList 특징 ? List 인터페이스의 구현체 👉 순서가 보장 O , 중복 데이터 허용 O 기존 Vector(=호환성을 위해 남김)와 구현원리, 기능이 동일하기에 ArrayList를 사용하자 Object배열을 이용해서 데이터를 순차적으로 저장한다. 👉 위치 값을 사용할 수 있기에 대상 객체 지정하여 다루기 편하다. 배열의 공간이 부족 시 새로운 크기의 배열에 기존 배열을 복사 후 저장 👉 추가하는 부분에서 비용이 발생할 수 있다. ArrayList 기능 ? 형태 메서드 설명 생성자 ArrayList() 크기 10인 ArrayList 생성 ArrayList(Collection c) 기존의 컬렉션을 담은 ArrayList 생성 ArrayList(int initialCapacity) 초기용량을 지정하..
큐 ? - 스택과 같이 데이터를 일시적으로 쌓아 놓는 자료구조 - FIFO(First In First Out) 방식으로 데이터를 입`출력 👉 먼저 들어온 데이터 순으로 먼저 나오게 된다. / 데이터 순서가 보장된다. -Java에서 Queue는 인터페이스이며, 이를 구현한 구현체들이 있는데 이를 활용하여 사용할 수 있다. 그 중 하나가 LinkedList이다. 👉 큐의 경우 데이터의 순서가 있기에 List형 컬렉션을 사용해야하는데 FIFO구조이기에 ArrayList를 사용할 경우 삭제 시 배열의 요소들 간에 이동이 발생한다. 그렇기에 LinkedList로 구현하는 것이 유리하다. 용어 ? 인큐(en-queue) : 큐에 데이터를 저장하는 작업 디큐(de-queue) : 큐에서 데이터를 꺼내는 작업 프런트(..
스택이란 ? 데이터를 일시적으로 쌓은 자료구조이다. 입/출력순서는 LIFO(Last In First Out)이다 👉 데이터가 아래부터 순차적으로 쌓이면 꺼낼때는 위부터 순차적으로 뺄 수 있다. 👉 스택사용시 데이터의 순서가 반전된다. 용어 ? push : 스택에 데이터를 넣는 작업 pop : 스택에서 데이터를 꺼내는 작업 Top / 꼭대기 : 스택에서 데이터가 들어오고 나가는 쪽 (위쪽) Bottom / 바닥 : 스택에 가장 최하단 쪽 스택 기능 ? 코드 ? // 스택을 구현해 본 코드 public class IntStack { private int[] stk; // 스택용 배열 private int capacity; // 스택 용량 private int ptr; // 스택 포인터 // 실행 시 예외 :..
내 블로그 - 관리자 홈 전환 |
Q
Q
|
---|---|
새 글 쓰기 |
W
W
|
글 수정 (권한 있는 경우) |
E
E
|
---|---|
댓글 영역으로 이동 |
C
C
|
이 페이지의 URL 복사 |
S
S
|
---|---|
맨 위로 이동 |
T
T
|
티스토리 홈 이동 |
H
H
|
단축키 안내 |
Shift + /
⇧ + /
|
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.