코딩 기록들
객체지향 프로그래밍 7. 배열(array) 본문
배열이란
- 동일한 자료형의 순차적 자료구조
- 인덱스 연산자를 이용해서 빠른참조가 가능
- array : 추가, 삭제시 수행시간이 조금 걸린다 : O(n)
- 물리적, 논리적 위치가 동일
- 데이터가 쭉 연결이 되어있어야함. 중간에 비는 칸이 생길 수 없음
[배열에 들어갈 수 있는것]
1) 기본자료형 int, double ..
2) 객체배열 : Student, Employee..
- ArrayList : 자바 유틸 패키지 안에서 제공되는 객체배열을 구현해놓은 클래스
배열 선언
방법1) int[] arr1 = new int[10];
방법2) int arr2[] = new int[10];
배열 초기화
배열은 선언과 동시에 자료형따라 초기화됨(정수 0 / 실수 0.0 / 객체 null)
- new 라는 키워드를 쓰면 초기화가 됨!
방법1)
int[] numbers = new int[] {10, 20, 30}; // [] 안에 숫자넣지 말것. 개수 생략해야 함
방법2)
int[] numbers = {10, 20, 30}; // 선언과 동시에 초기화 하는것. new int[] 생략 가능
방법3)
int[] ids;
ids = new int[] {10, 20, 30}; // 선언후 나중에 초기화 : 배열을 생성하는 경우는 new int[] 생략할 수 없음
배열 사용하기
예제1) 배열을 이용하여 합 구하기
public class ArrayTest {
public static void main(String[] args) {
int[] arr = new int[]{1,2,3,4,5,6,7,8,9,10};
int total = 0;
//enhanced for문 : 향상된 for문 -> 처음부터 끝까지 순회할 때 씀
for(int num:arr){
total += num;
}
System.out.println(total);
// ++이 뒤에있으면 값을 증가시키고 나서 대입함
// int[] arr = new int[10] // 3 line을 이걸로 바꿈
// for (int i = 0, num = 1, i<arr.length; i++) {
// arr[i] = num++;
// }
}
}
배열의 길이와 요소의 개수는 동일하지 않음
- 배열선언=개수만큼 메모리할당 (but, 실제요소가 없는 경우도 있음)
- 배열 length속성은 배열의 개수를 반환해줌 -> 요소의 개수와는 다름
--> 이럴경우, 요소의 개수에 대한 변수count를 따로 유지!!
다차원 배열
- 이차원 이상으로 구현 된 배열
- 평면 (이차원 배열) 이나 공간(삼차원 배열)을 활용한 프로그램 구현
이차원 배열 예제
자료형[][]배열이름 = new자료형[행의개수][열의개수]
ex) int arr[][] = {{1,2,3},{4,5,6}}
향상된 for문
배열n개 요소를 0부터 n-1까지 순차적으로 순회할때 사용
for( 변수 : 배열) {
}