Java에서 Collection 은 데이터의 집합, 그루핑을 의미하며,

이러한 데이터나 자료구조인 Collection과 이를 구현하는 클래스를

JCF(Java Collections Framework) 라는 이름의 인터페이스가 제공한다.

 

 

 

List 인터페이스

리스트는 순서가 있는 데이터의 집합으로, 데이터의 중복을 허용한다.

즉 배열과 비슷하게 List는 인덱스가 주어지고, 해당 인덱스마다 개별의 데이터 값이 입력된다. 따라서 index[0]와 index[1]에 각각 1이라는 데이터가 저장되더라도 각각은 다른 주소값을 가지고 있다는 의미이다.

 

 

1. LinkedList

- 양방향 포인터 구조로, 데이터의 삽입과 삭제가 빈번하게 발생할 경우 데이터의 위치 정보만 수정하면 되기 때문에 유용하게 사용된다.

- 스택구조, 큐, 양방향 큐 등을 만들기 위한 용도로 사용된다.

2. Stack

- 스택은 추상 자료형이다.

- 스택이란 입구와 출구가 동일한 상자 구조를 생각하면 쉽다. 스택은 데이터를 차곡차곡 상자 안에 쌓는다. 그 후 출력을 할 때에는 가장 마지막에 쌓은 데이터부터 출력하게 된다. 후입선출의 자료구조라고 볼 수 있다. 

 

 

* 스택 클래스의 메소드와 사용과정

boolean empty() 해당 스택이 비어 있으면 true를, 비어 있지 않으면 false를 반환함.
E peek() 해당 스택의 제일 상단에 있는(제일 마지막으로 저장된) 요소를 반환함.
E pop() 해당 스택의 제일 상단에 있는(제일 마지막으로 저장된) 요소를 반환하고, 해당 요소를 스택에서 제거함.
E push(E item) 해당 스택의 제일 상단에 전달된 요소를 삽입함.
int search(Object o) 해당 스택에서 전달된 객체가 존재하는 위치의 인덱스를 반환함.
이때 인덱스는 제일 상단에 있는(제일 마지막으로 저장된) 요소의 위치부터 0이 아닌 1부터 시작함.

 

4. ArrayList

- ArrayList 클래스는 배열을 이용하기 때문에 인덱스를 이용해 배열 요소에 빠르게 접근할 수 있습니다.

- 그러나 배열은 크기를 변경할 수 없는 인스턴스이므로, 크기를 늘리기 위해서는 새로운 배열을 생성하고 기존의 요소들을 옮겨야 하는 복잡한 과정을 거쳐야 한다. 따라서 데이터의 추가와 삭제가 빈번할 경우, 비효율적이다.

 

 

 

BELATED ARTICLES

more