JAVA - 자료구조와 컬렉션 프레임워크

ubiies·2023년 5월 13일
0

JAVA

목록 보기
4/4

자료구조

자료를 어떻게 관리하느냐에 따라 알고리즘도 바뀌고 프로그래밍 방식도 바뀌게 된다. 우리가 지금 사용하고자 하는 자료를 어떤 구조로 갖고 어떤 방식으로 관리할 것인지 정하는 것을 바로 자료구조라고 한다. Array, List, Map이 대표적인 자료구조이다.

자료구조는 위에 서술했듯이 여러 개이고 제각각 쓰임이 다르고 만들어진 형식또한 다르다. 어떤 것이 어떤 경우에 쓰이는지를 이해해야 한다.

자료구조의 종류

1. Array

배열은 가장 전통적이고 기본이 되는 자료구조이다. 데이터를 순차적으로 저장해 0부터 시작하는 인덱스를 통해 접근할 수 있다.

  • 정해진 길이가 있다.
  • 논리적 구조와 물리적 구조가 같다.
    즉, 주소값이 일렬인 선형 자료구조이다.
    이로 인해 맨 처음 인덱스 주소를 알면 다른 인덱스 주소들도 알 수 있으며 굉장히 빠르게 찾을 수 있다.
  • 데이터를 중간에 추가하기 위해서는 모든 데이터 값을 다 옮겨야 한다. 배열의 요소가 자주 변화하는 경우 배열을 쓰는 것은 비효율적이다.

2. List

배열과 유사한 순차적인 자료구조를 제공한다. 데이터 접근을 위해 인덱스를 사용하는 것은 배열과 같으나 배열의 모든 문제점을 해결하고 있다.

  • 길이를 선언하지 않아도 된다.
  • 물리적으로는 떨어져 있으나 논리적으로는 바로 옆에 위치되어 있다. 이로 인해 i번째 인덱스를 찾는 경우 무조건 맨 처음부터 찾아야 한다.
  • 배열 중간에 값을 추가하거나 삭제하기 쉽다.

3. Map

데이터를 key:value의 쌍으로 저장하는 방식이다. 키와 값이라는 데이터를 연결하는 것이 매핑이다. 또한, 해싱을 사용하기 때문에 방대한 양의 데이터를 검색하는데 있어서 뛰어난 성능을 보인다.

  • key값을 알면 언제든 쉽게 데이터를 찾을 수 있다.
  • value에 객체형이 들어갈 수 있어 복잡한 데이터 처리가 가능하다.

4. Stack

상자가 쌓여있는 구조처럼 LIFO 형식을 갖는 선형 자료구조이다.

  • 항상 top 위치에 있는 것이 push, pop된다.
  • 가장 최근의 정보를 참조할 때 많이 사용된다.
  • 데이터가 중간에 들어갈 수 없다.

5. Queue

데이터가 저장된 순서대로 출력되는 선입선출(FIFO)형식을 갖는 선형 자료구조이다.

  • 앞 쪽을 front, 뒷 쪽을 rear라고 한다.
  • 가장 많이 쓰이는 자료구조로 현실 세계의 선착순과 비슷하다.
  • 데이터가 중간에 들어갈 수 없다.

컬렉션 프레임워크란?

컬렉션 프레임워크는 자바 프로그래밍에서 빠질 수 없는 필수적인 요소이다. 컬렉션은 다수의 데이터, 프레임워크는 표준화된 프로그래밍 방식을 의미하며 컬렉션 프레임워크란 데이터 그룹을 저장하는 클래스들을 표준화한 설계를 뜻한다. 컬렉션 프레임워크를 잘 활용하면 객체 지향적이고 재사용성이 높은 코드를 작성할 수 있다.

컬렉션 프레임워크의 상속 계층도

인터페이스설명특징구현 클래스
List순서가 있는 데이터의 집합데이터의 중복을 허용ArrayList, LinkedList
Set순서를 유지하지 않는 데이터의 집합데이터의 중복을 허용하지 않음Hashset, LinkedHashSet
Map키와 값의 쌍으로 이루어진 데이터 집합순서 유지x, 키 중복x, 값 중복oHashMap, LinkedHashMap

0개의 댓글