[JAVA] 자료구조(Data Structure) (25.08.13)

Rjhkki222·2025년 8월 19일

JAVA

목록 보기
6/13
post-thumbnail

자료구조(data structure)란?

  • 대량의 데이터효율적으로 관리할 수 있는 데이터의 구조 (리스트, 맵, 셋, 트리, 그래프, 링크드리스트 등의 틀)

개발자 입장 : 코드 상에서 효율적으로 데이터를 처리하기 위해서, 데이터의 특성에 따라 체계적으로 데이터를 구조화 해야 한다.

  • 어떤 데이터 구조를 사용하느냐에 따라 코드 효율성(성능)이 달라진다.

알고리즘이란?

  • 어떤 문제를 풀기 위한 절차 / 방법
  • 어떤 문제에 대해, 특정한 입력을 넣으면 원하는 출력을 얻을 수 있도록 만드는 프로그래밍.

1. 컬렉션

  • 컬렉션의 필요성 : 컬렉선은 배열처럼 데이터를 저장하는 데 사용.

2. 컬렉션 프레임워크의 개념

  • 많은 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합을 말함.
  • 데이터를 저장하는 자료 구조와 데이터를 처리하는 알고리즘을 구조화하여 클래스로 구현해 놓은 인터페이스

컬렉션
1) List 계열 - 객체의 저장 순서가 있고, 중복 허용
2) Set 계열 - 객체의 저장 순서가 없고, 중복 허용x

맵 (키를 가지고 값을 관리)
1) Key-value 값이 한 쌍으로 관리된다. Key값은 중복허용x => key를 set으로 만들어 활용.

3. 큐(Queue)

  • 줄을 서는 행위와 유사하다.
  • 가장 먼저 들어간 데이터가 가장 먼저 나온다. (FIFO: First in first out)

<Java에서는 기본적으로 java.util.Queue 클래스를 제공하고 있다. but linkedList를 이용해서만 큐를 구현할 수 있음.>

용어
1) Enqueue: 큐에 데이터를 넣는 기능

  • add(value), offer(value)

2) Dequeue: 큐에서 데이터를 꺼내는 기능

  • remove(value), poll(value)

4. 스택(Stack)

<Java에서는 기본적으로 java.util.Stack 클래스를 제공하고 있다. 배열 array 를 이용해서 스택을 구현할 수 있음.>

  • stack 구조는 데이터를 제한적으로 접근할 수 있는 구조이다. (한쪽 끝에서만 자료를 넣거나 뺼 수 있는 구조)
  • LIFO (Last in First out)
  • 구조가 단순해서, 구현이 쉽다. 배열로 구현.
  • 장점 : 데이터 저장/읽기 속도가 빠르다.
  • 단점 : 데이터 최대 갯수를 미리 정해야 함. 저장공간의 낭비를 초래할 수 있다 & 저장공간이 유한하다.
profile
Hello World!🍀

0개의 댓글