💡 학습 목표 1. 자료 구조에 대한 개념을 알아 보자. 2. 배열에 대한 기본 개념을 알아 보자. 3. 배열에 길이와 인덱스의 길이. 4. 배열에 길이와 요소(elements) |
1. 자료 구조에 대한 개념을 알아보자.
자료 구조는 데이터를 어 떻게 조직화하고 저장하며 접근할지를 결정하는 방법입니다.
- 자료 구조의 특징:
- 효율성: 데이터를 효율적으로 저장, 검색, 삽입, 삭제할 수 있어야 합니다.
- 추상화: 데이터의 논리적인 구조와 물리적인 구현을 분리하여 추상적으로 정의해야 합니다.
- 재사용성: 여러 응용 프로그램에서 재사용할 수 있도록 일반적이고 유연한 구조여야 합니다.
- 자주 사용되는 자료 구조:
- 배열(Array): 동일한 데이터 타입의 요소들을 연속된 메모리 공간에 저장하는 자료 구조입니다.
- List, Map, Set, 스택, 큐, 트리 등이 있다.
2. 배열에 대해 알아보자.
배열(array)이란 연관된 데이터를 모아서 통으로 관리하기 위해서 사용하는 데이터 타입이다.
변수가 하나의 데이터를 저장하기 위한 것이라면 배열은 여러 개의 데이터를 하나의 변수에 저장하기 위한 것이라고 할 수 있다.
배열의 특징
- 동일한 자료형의 순차적 자료 구조
- 인덱스 연산자[]를 이용하여 빠른 참조가 가능
- 물리적 위치와 논리적 위치가 동일
- 배열의 순서는 0부터 시작 (인덱스라고 한다)
- 자바에서는 객체 배열을 구현한 ArrayList를 많이 활용함
배열 선언과 초기화
배열 선언하기
int[] arr1 = new int[10];
int arr2[] = new int[10];
실습코드 1
package basic.ch14;
public class ArrayTest1 {
public static void main(String[] args) {
// 배열이란?
// 연관도니 데이터를 모아서 통으로 관리하기 위한 데이터 타입
// 배열의 특징(중요)
// 벼열은 사용하기 전에 반드시 몇 개의 데이터가 들어갈지
// 크기를 지정해야 사용할 수 있다.
// 배열 메모리 공간 만들기
int [] numbers = new int[3];
int intBoxes[] = new int[5];
// 값 넣기 (초기화)
// 배열의 길이 -> 3
// 인덱스의 길이 -> 2
numbers[0] = 1000;
numbers[1] = 1001;
numbers[2] = 1002;
//numbers[3] = 1003; --> 인덱스의 길이를 벗어났음, 오류 발생
//사전기반 지식 - 모든 프로그래밍에 인덱스 번호의 시작은 0부터 시작한다.
// 배열의 선언과 동시에 초기화
int[] greade = new int[] {5, 3, 1};
int[] grade2 = {5, 3, 1}; // new int[] 생략 가능히다.
// 문제 1
// 5개의 크기를 가지는 double 타입의 배열을 선언하시오
// 단, 배열의 이름은 마음대로 작성하세요
double[] problem1 = new double[5]; // [] [] [] [] []
// 문제 2
// 위에서 선언한 배열의 값을 인덱스 0 ~ 2까지 초기화 하시오
// 값은 아무거나 상관 없음.
problem1[0] = 10.0;
problem1[1] = 0.5;
problem1[2] = 0.7;
// problem1[2] = 0.0;
// problem1[2] = 0.0;
// 문제3
// String 타입의 배열을 선언, 배열의 크기는 3개,
// 선언과 동시에 초기화 하세요.
String[] strignBox = {"코", "딩", "해"};
} // end of main
} // end of class
3. 배열의 길이와 인덱스의 길이
인덱스의 크기는 n - 1 개 이다.
package basic.ch14;
public class ArrayTest2 {
public static void main(String[] args) {
String[] names = new String[5]; // 5칸 짜리 메모리 공간 할당
// 생성 - Create
names[0] = "고씨";
names[1] = "박씨";
names[2] = "김씨";
// names[3] = null;
// names[4] = null;
// 조회 -
System.out.println(names);
System.out.println(names[0]);
System.out.println(names[1]);
System.out.println(names[2]);
System.out.println(names[3]);
System.out.println(names[4]);
// System.out.println(names[5]);
// 수정 - Update
names[0] = "Mr. Go";
names[1] = "Mr. Park";
names[2] = "Mr. Kim";
// 삭제 - Delete
names[0] = null;
names[1] = null;
names[2] = null;
// 자바에서 null값은 할당 되지 않은 상태를 의미합니다.
// Object 타입에서 사용 가능
// 1단계
// 배열의 길이와 인덱스 길이에 대한 이해 --> 인덱스의 길이는 n - 1 이다.
System.out.println("배열의 크기 : " + names.length);
System.out.println("인덱스의 크기(n - 1) : " + (names.length - 1));
// 문제 2
// 배열의 크기가 50개이면 인덱스의 길이는 얼마인가 -> 49
// 배열의 크기가 100개이면 인덱스의 길이는 얼마인가 -> 99
// 배열의 크기가 375개이면 인덱스의 길이는 얼마인가 -> 374
} // end of main
} // end of class
4. 배열의 길이와 요소(elements)
배열의 길이와 요소의 개수는 꼭 동일하지 않습니다. --> 배열은 반복문과 함께 많이 사용된다.
실습코드 3
package basic.ch14;
public class ArrayTest3 {
public static void main(String[] args) {
char[] alpahbets = new char[26];
char ch1 = 'A';
alpahbets[0] = ch1;
char ch2 = 'B';
alpahbets[1] = ch2;
char ch3 = 'C';
alpahbets[2] = ch3;
char ch26 = 'z';
alpahbets[25] = ch26;
System.out.println("---------------");
System.out.println(alpahbets[3]);
if(alpahbets[3] == 0) {
System.out.println("동작함");
}
System.out.println("---------------");
// 배열은 반복문과 함께 많이 사용 된다.
int forCount = 0;
int eCount = 0;
for(int i = 0; i < alpahbets.length; i++) {
if(alpahbets[i] != 0 ) {
eCount++;
}
//alpahbets[i];
System.out.println(alpahbets[i]);
forCount++;
}
System.out.println("for 동작 횟수 " + forCount);
System.out.println("배열안에 요소의 개수는 ? " + eCount);
}// end of main
} // end of class
package basic.ch14;
import java.util.Iterator;
public class ArrayTest {
public static void main(String[] args) {
String[] arrayStr = new String[26];
arrayStr[0] = "A";
arrayStr[1] = "B";
arrayStr[2] = "C";
arrayStr[3] = "D";
arrayStr[3] = "E";
arrayStr[7] = "G";
System.out.println(arrayStr[4]); // --> null
// 배열안에 요소의 개수를 출력하시오
// 값이 있다면 콘솔창에 출력
// 반복문 활용
int eCount = 0;
int forCount = 0;
for(int i=0; i < arrayStr.length; i++ ) {
if(arrayStr[i] != null) {
System.out.println(arrayStr[i]);
eCount++;
}
forCount++;
}
System.out.println("작동 횟수 : " + forCount);
System.out.println("요소의 갯수 : " + eCount);
System.out.println("인덱스 갯수" + (arrayStr.length -1));
}
}
'Java > JAVA 2 - 객체지향 핵심' 카테고리의 다른 글
JAVA 2 - 전화번호관리 프로그램 만들기 - {연습문제} (0) | 2024.04.22 |
---|---|
JAVA 2 - 배열의 활용(도서 관리프로그램) (0) | 2024.04.22 |
JAVA 2 - static 메소드(함수) (0) | 2024.04.19 |
Java 2 - static 변수 (0) | 2024.04.18 |
ver 0.0.1 Starcrft (0) | 2024.04.18 |