Collection 인터페이스 지금 구현하던 Collections 프레임워크들은 Collection 인터페이스 내에 상속되어 구현된 클래스들이다. 처음에는 구현 자체에만 목적을 가지고 ArrayList, LinkedList 등을 만들었지만 구현 양이 늘어남에 따라 서로 같은 기능을 가진 메소드들이 반복적으로 나타났다. 따라서 더 구현하기 전에 Collection 인터페이스를 정의하고 메소드들의 기능에 대해서 정리하기로 하였다. 먼저 각 클래스들이 공통으로 가지는 메소드들을 확인해보자. size() isEmpty() contains() toArray() add() remove() clear() 가 있다. 따라서 Collection 인터페이스를 만들어서 정의해보자. package DataStructure; ..
Deque 란 Queue에서 확장된 개념이다. 선입선출로 가장 첫번째 node만 꺼내고 빼올 수 있던 단방향 구조인 Queue와는 달리 Deque ( Double-ended Queue)는 양방향 구조이다. Queue의 연장선이기 때문에 Queue와의 차이점은 한쪽에서만 뺄 수 있느냐(단방향이냐) 양쪽에서 뺄 수 있느냐(양방향이냐)일 뿐 다른 차이점은 없다. 따라서 단방향구조였던 Queue 인터페이스를 상속받아서 양방향으로 메소드를 더 추가해주는 과정을 거친 것이 Deque라고할 수 있다. 구현 Deque는 구조적으로 Queue의 기능을 양방향으로 확장한 개념이기 때문에 Queue를 상속받아서 구현한다. Queue 구현에서 메소드는 너무 단순했다. LinkedList가 Queue를 상속(Deque를 상속받..
Queue 란 Stack과는 다르게 데이터가 들어간 순서대로 나오는 즉, FIFO(First In Last Out) 선입선출의 자료구조이다. First In First Out 선입 선출 먼저 들어간 것이 먼저 나온다. 데이터를 추출할 때 Stack은 마지막 데이터를 꺼내는 것과 달리 가장 앞에 있는 index를 꺼낸다. 먼저 들어온(push)된 값을 먼저 보낸다(pop)가 기본 베이스로 깔려서 다른 PrioritoyQueue나 Deque로 개념을 연장할 수 있다. Queue는 사실 먼저 들어온게 먼저 나가는 대기열로 생각하면 되고 대학생때 고통받는 수강신청에서 트래픽 대기가 보통 Queue 형태로 구현되어있다. 구현 사실 Queue도 또한 Collection 프레임워크에 포함되어있고, 물론 Stack과 ..
Stack 이란 Stack, 우리는 스택이라는 용어를 쌓여가는 것에 사용한다. 1스택, 2스택 .... . 즉, Stack은 데이터가 쌓여가는 것을 나타내는 자료구조로 생각하면 편한다. Stack을 이야기할 때 항상 따라서 나오는 용어는 LIFO(Last In First Out)이다. (FILO(First In Last Out) 선입후출로 표현하기도 하는데 여기서는 후입선출로 통일하여 이야기 할 것이다.) Last In First Out 후입 선출 먼저 나온 것이 먼저 나온다. Stack은 데이터를 쌓아가면서 가장 마지막에 넣은 데이터를 먼저 꺼내는 형태의 자료구조를 말한다. 개념 자체는 매우 단순하다 먼저 넣을수록 밑으로 쌓여가고 빼낼때는 가장 최근에 넣은 값을 빼는 것, 예로 들면 웹페이지의 뒤로가기..
LinkedList(Singly LinkedList)란 LinkedList는 Collection FrameWork란 여러 개의 데이터를 쉽고 효율적으로 관리할 수 있는 표준화된 방법을 제공하는 클래스 중 하나이다. 컬랙션 프레임워크 중 List 인터페이스에 해당된다. ArrayList는 배열을 토대로 만들어진 List로 데이터를 추가하거나 삭제할 때 크기를 변경할 수 없어서 새롭게 생성해서 copy된 배열을 사용하는 등 "고정된" 배열로 인한 단점이 있었다. 하지만 LinkedList는 이 단점을 해결하기 위해 각 노드가 데이터와 포인터를 가지고 줄줄이 연결되어있는 구조이다. (노드가 서로서로 링크되어있다.) 처음부터 말로 설명을 하면 좀 알아듣기 힘들고 그림으로 먼저 보자. 처음 Header는 시작을 ..
ArrayList란 ArrayList는 Collection Framework(컬랙션 프레임워크)란 여러 개의 데이터를 쉽고 효율적으로 관리할 수 있는 표준화된 방법을 제공하는 클래스 중 하나이다. 컬랙션 프레임 워크 중 List 인터페이스에 해당된다. List 인터페이스만 알아보면 List 인터페이스는 순서가 있는 데이터의 집합이며 데이터의 중복을 허용하는 인터페이스다. 쉽게말해서 확장된 배열이라고 보면된다. 한번 생성되었을 때 크기가 변하지 않는 배열과는 다르게 객체가 추가되어 capacity가 초과되면 capacity가 늘어난다. 위 ArrayList가 설령 크기가 8로 지정되어 있더라고 9로 배열의 크기를 늘린 다음에 저장할 수 있다. 가변적인 배열이라고 생각하면 머릿속에 외우기 더 쉽다. 구현 j..
- Total
- Today
- Yesterday