기본 문법/[JAVA](10)
-
[JAVA] List - Stack VS Queue
구현을 위해 어떠한 컬렉션 클래스를 사용하는 것이 좋을까? - 순차적으로 데이터를 추가&삭제하는 스택에는 ArrayList와 같은 배열 기반의 컬렉션 클래스를 사용 - 큐는 데이터를 삭제할 때 첫 번째 저장된 데이터를 삭제 --> 빈 공간을 채우기 위해 데이터의 복사가 발생함으로써 ArrayList는 비효율적. --> LinkedList로 구현하는 것이 더 적합하다. PriorityQueue Queue인터페이스의 구현체 중의 하나, 저장한 순서에 관계없이 우선순위가 높은 것부터 꺼내게 된다는 특징 Dequeue Queue의 변형으로, 한 쪽 끝으로만 추가/삭제하는 Queue와 달리, Deque는 양쪽 끝에 추가/삭제 가능 Deque의 구현체로는 ArrayDeque와 LinkedList 등이 있다.
2020.06.14 -
[JAVA] List - LinkedList
LinkedList는 List인터페이스를 구현한다. 이 말은 즉 List인터페이스를 구현했기 때문에 데이터의 저장순서가 유지되고 중복을 허용한다는 특징을 갖는다. Linked List의 요소 Linked List의 각 요소는 우리가 많이 들어봤듯이 노드(Node)라 불린다. 이 노드들은 자신과 연결된 다음 요소에 대한 참조(주소값) + 자신의 데이터로 구성된다. class Node // 단방향 { Node next; // 다음 요소의 주소 Object obj; // 현재 요소의 데이터 } ArrayList와 Vector 같은 배열의 단점을 보완하기 나왔다. 배열은 모든 데이터가 연속적으로 존재하지만 LinkedList는 불연속적으로 존재하는 데이터를 서로 연결한 형태이다. 여기 위에서 33의 값을 지우려..
2020.06.12 -
[JAVA] List - ArrayList
ArrayList는 List인터페이스를 구현한다. 이 말은 즉 List인터페이스를 구현했기 때문에 데이터의 저장순서가 유지되고 중복을 허용한다는 특징을 갖는다. Vector의 상위호환 ArrayList는 기존의 Vector를 개선한 것으로 Vector와 구현원리와 기능적인 측면에서 동일하다고 할 수 있다. 가능하다면 Vector보다는 자바에서는 ArrayList를 사용하자. 데이터를 순차적으로 저장한다. 1. Object배열을 이용해서 데이터를 순차적으로 저장한다. 2. 배열에 더 이상 저장할 공간이 없으면 보다 큰 새로운 배열을 생성한 후 기존의 배열을 저장하고 새로운 배열로 기존의 배열이 붙여진 다음에 값이 저장된다. 용량을 변경할 때 새로운 배열을 생성한 후 기존의 배열로부터 새로 생성된 배열로 데..
2020.06.12 -
[JAVA] Collections Framework의 구조
컬렉션 프레임웍이란, ' 데이터 군을 저장하는 클래스들을 표준화한 설계 ' 를 뜻한다. 컬렉션은 다수의 데이터, 즉 데이터 그룹을, 프레임웍은 표준화된 프로그래밍 방식을 의미한다. 인터페이스와 다향성을 이용한 객체지향적 설계를 통해 표준화되어 있어 사용법을 익히기에 편하다. 재사용성이 높은 코드를 작성할 수 있다. 컬렉션 프레임웍의 핵심 인터페이스 및 구현클래스 Interface 특징 Implements Iterator 컬렉션에 저장된 요소를 읽어오는 방법 LIST SET MAP LIST 순서가 있는 데이터 집합. 데이터의 중복을 허용한다. ArrayList LinkedList Stack Vector ( ArrayList 를 사용하자 ) SET 순서를 유지하지 않는 데이터의 집합. 데이터의 중복을 허용하..
2020.06.11