-
Notifications
You must be signed in to change notification settings - Fork 0
Basic Data Structure and Algorithm 01
Byeong Gwan Seo edited this page Sep 10, 2021
·
2 revisions
데이터 단위와 데이터 자체 사이의 물리적 또는 논리적인 관계
자료를 효율적으로 이용할 수 있도록 컴퓨터에 저장하는 방법을 뜻함.
//학생들의 시험 성적을 관리할때
int mike;
int thomas;
int jake;
...학생의 숫자가 적을땐 이렇게 학생 한 명마다 변수를 선언해서 관리할 수 있지만, 학생수가 많을땐 굉장히 번거로워진다.
이럴땐, 학번 또는 출석번호로 줄 세우듯이 '몇 번째 학생' 이라고 지정하면 작업이 편리해진다. "배열(Array)"은 바로 이럴때 사용하는 간단한 자료구조이다.
또한, 같은 자료형의 변수로 이루어진 구성 요소(component)가 직선 모양으로 연속하여 줄지어 있는 구조이다.
int[] student;
int student[];배열은 위와 같이 선언할 수 있는데, int형인 Array라는 점을 명확하게 나타낼 수 있다는 점에서 전자를 훨씬 많이 사용한다.
그리고 구성 요소의 갯수를 선언하려면 아래와 같이 나타낸다.
a = new int[5];위 박스의 의미는, 변수 a는 길이가 5인 배열을 참조한다는 뜻이다.
아래 프로그램을 통해 배열의 특성을 확인할 수 있다.
class IntArray {
public static void main(String[] args) {
int[] a = new int[5]; // 정수형 배열 a를 선언하고 a의 0~4까지 5개의 인덱스를 지닌 배열임을 선언한다.
a[1] = 37; // a[1]에 37을 대입
a[2] = 51;
a[4] = a[1] * 2; // a[1]에 2를 곱한 값을 a[4]에 대입한다.
for (int i = 0; i < a.length; i++) // a[0]부터 a[4]까지의 값을 출력한다.
System.out.println("a[" + i + "] = " + a[i]);
}
}result
a[0] = 0 //값을 대입하지 않은 배열의 component는 자동으로 0으로 초기화된다.
a[1] = 37
a[2] = 51
a[3] = 0
a[4] = 74 // a[1] * 2값을 대입하지 않은 배열의 component는 자동으로 0으로 초기화 되지만, 배열 초기화를 사용하면 배열의 생성과 동시에 각 component의 초기화가 가능하다.
class IntArrayInit {
public static void main(String[] args) {
int[] a = {1, 2, 3, 4, 5};
for (int i = 0; i < a.length; i++)
System.out.println("a[" + i + "] = " + a[i]);
}
}result
a[0] = 1
a[1] = 2
a[2] = 3
a[3] = 4
a[4] = 5int[] a = new int[] {1, 2, 3, 4, 5}위와 같이 new 연산자를 사용해 좀 더 명확하게 선언할 수 있다.