본문 바로가기
Java/기본 개념 및 클래스

[Java] 32. 자료구조와 배열

글: Song hyun 2024. 4. 22.
728x90
반응형

[Java] 32. 자료구조와 배열




1. CRUD 개념
C: Create
R: Read
U: Update
D: Delete

 

-CRUD는 많은 소프트웨어에서 사용되는 개념이다.

각각 Create(생성), Read(조회), Update(수정), Delete(삭제)를 의미하며, 이는 기본적인 데이터 관리 기능을 뜻한다.




2. 자료 구조
자료 구조: 자료 구조는 데이터를 어떻게 조직화하고, 저장하며, 접근할 지를 정하는 방법/방법론이다.

(1) 자료구조의 특징
-효율성: 데이터를 효율적으로 저장, 삽입, 검색, 삭제할 수 있어야 한다.
-추상화: 데이터의 논리적인 구조와 물리적인 구현을 분리해, 추상적으로 정의해야 한다.
-재사용성: 여러 프로그램에서 재사용할 수 있게 유연한 구조여야 한다.

(2) 자주 쓰이는 자료 구조
-*배열(Array): 동일한 데이터 타입의 요소들을 연속된 메모리 공간에 저장하는 자료구조이다.
-*리스트, *맵, *셋, *스택, *큐, *트리 등의 자료 구조가 있다.


3. 배열
(1) 배열: 하나의 변수에 연관된 데이터들을 한꺼번에 관리하기 위해 사용하는 자료형이다.
-변수가 하나의 데이터를 저장하기 위한 것이라면, 배열은 여러 개의 데이터를 하나의 변수에 저장하기 위한 것이다.

(2) 배열의 특징
-동일한 자료형의 순차적인 자료 구조이다.
-인덱스 연산자[]를 이용해, 빠른 참조가 가능하다.
-물리적인 위치와 논리적인 위치가 같다.
-배열의 순서는 0부터 시작한다. (=인덱스)
-자바에서는 객체 배열을 구현한 ArrayList를 많이 사용한다.
-배열 역시 Heap에 저장된다.

 

*배열은 사용하기 전에, 반드시 몇 개의 데이터가 들어갈지 크기를 지정해야 사용할 수 있다.

(=배열 메모리 공간 만들기)



4. 배열의 선언과 초기화

int [] arr1=new int[10];
int arr[]= new int[10];


ㄴ두가지 방법 모두 사용할 수 있지만, 위의 방식을 더 많이 사용한다.
ㄴ4바이트의 int가 10개 있으므로, 총 40바이트 크기의 배열이 된다.

인덱스(Index): 배열에 번호를 매기는 것이다. 인덱스는 0부터 시작한다.
ㄴ위의 배열이 있다고 치면, 배열의 크기는 10(=개수)이고, 배열의 길이는 0부터 9까지(=인덱스)이다. 
ㄴ배열의 길이(인덱스)= 배열의 크기-1

 

 

5. 연습 문제

: 배열을 선언하고, 초기화하며 CRUD 법칙에 따라 코드를 작성해보자.

 

(1) C: Create

String 형태의 변수를 저장하는 배열 names에 3개의 변수를 초기화해보자.

// 생성 Create
names[0]="김씨";
names[1]="나씨";
names[2]="박씨";

 

(2) R: Read

위에서 선언/초기화한 배열을 출력해보자.

// 조회 Read
System.out.println(names); //주소값이 출력된다.
System.out.println(names[0]); //인덱스의 값을 따라 변수가 출력된다.
System.out.println(names[1]);
System.out.println(names[2]);
System.out.println(names[3]); //인덱스 3, 4는 초기화되지 않았기 때문에, null이 뜬다.
System.out.println(names[4]);

 

(3) U: Update

위에서 선언/초기화한 배열의 값을 수정해보자.

// 수정 Update
names[0]="Mr.Kim";
names[1]="Mr.Na";
names[2]="Mr.Park";


(4) D: Delete

위에서 선언/초기화한 배열의 값을 삭제해보자.

*배열은 null로 초기화시 변수의 값이 삭제된다.

// 삭제 Delete
names[0]=null;
names[1]=null;
names[2]=null;

 

 

728x90
반응형