- [Java] 32. 자료구조와 배열2024년 04월 22일
- Song hyun
- 작성자
- 2024.04.22.:30
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까지(=인덱스)이다.
ㄴ배열의 길이(인덱스)= 배열의 크기-15. 연습 문제
: 배열을 선언하고, 초기화하며 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반응형'Java > 기본 개념 및 클래스' 카테고리의 다른 글
[Java] 34. 배열 활용 : 도서 관리 프로그램 만들기 (0) 2024.04.22 [Java] 33. 배열의 길이와 요소 (0) 2024.04.22 [Java] 31. 버블 정렬 (0) 2024.04.19 [Java] 30. Oracle 에서 Java 문서 읽기 (0) 2024.04.19 [Java] 28. static 메서드의 개념과 메서드 오버로딩 (0) 2024.04.19 다음글이전글이전 글이 없습니다.댓글