노승현
배열이란? 본문
배열이란?
같은 자료형의 변수를 지정하여 여러 데이터를 저장할 수 있는 저장 공간을 의미합니다. 이렇게 여러 데이터를 담을 수 있는 구조를 자료 구조 라고 합니다. 배열을 사용하면 같은 자료형의 데이터들을 효율적으로 다룰 수 있습니다.
배열의 선언
자료형 [] 변수이름 : int [] arr;
자료형 변수이름 [] : int arr [];
null 키워드
배열은 여러 개의 데이터를 저장하기 위한 별도의 공간이 필요합니다. 우리가 배열을 선언만 하고 값을 부여하지 않을 경우, 시스템은 배열 변수를 만들 때, null 이라는 키워드를 부여합니다. 이때 null 의 의미는 "공간이 존재하지 않는다." 또는 "없다." 라는 의미를 가집니다.
배열 변수는 생성되었지만, 아직 그 안에 값을 담을 공간들이 생성되지 않았다는 뜻입니다.
배열의 특징
배열 선언 시 크기를 지정합니다.
배열 선언 후 공간의 크기를 늘리거나 삭제할 수 없습니다.
지정된 자료형의 값만 저장할 수 있습니다.
배열의 구조
인덱스
인덱스는 배열의 공간마다 붙여진 번호로 범위는 1이 아닌 0부터 시작합니다.
배열의 길이
배열은 내부적으로 length라는 변수를 지니는데, 해당 변수는 배열의 길이 값을 가지고 있습니다. 배열의 길이를 알고 싶을 때는 다음과 같이 배열 변수 이름에 점(.) 연산자로 연결하여 사용합니다.
배열의 초기값
자료형 | 초기값 |
정수형 | 0 |
실수형 | 0.0 |
문자형 | '' |
객체형 | null |
배열의 출력
toString() 은 반복문의 도움 없이 배열을 출력할 수 있으며, 배열에 정의된 값들을 문자열 형태(String) 로 변환하여 출력해 줍니다.
배열의 정렬
배열 항목을 정렬해주는 Arrays.sort() 기능이 있습니다.
배열의 복사
자바에서 배열은 한 번 생성하면 그 길이를 변경할 수 없습니다. 따라서 더 많은 데이터를 저장하거나 기존의 배열과 똑같은 배열을 새로 만들려면 배열을 복사해야 합니다.
얕은 복사 : 복사된 배열이나 원본 배열이 변경될 때 서로 간의 값이 함께 변경됩니다.
깊은 복사 : 복사된 원본 배열이 변경될 때 서로 간의 값은 바뀌지 않습니다.
얕은 복사
package testReview2;
import java.util.Arrays;
public class Arrays {
public static void main(String[] args) {
int[] arr01 = {1,2,3};
// 배열의 얕은 복
int[] arr02 = arr01;
System.out.println(Arrays.toString(arr01));
arr02[1]=10;
System.out.println(Arrays.toString(arr01));
System.out.println(Arrays.toString(arr02));
}
}
실행 결과
arr01 배열 : [1, 2, 3]
arr02 배열 : [1, 10, 3]
arr01 배열 : [1, 10, 3]
깊은 복사
package testReview2;
import java.util.Arrays;
public class Arrays {
public static void main(String[] args) {
int [] card = {3, 1, 4, 5, 10};
// 배열의 깊은 복사 - Arrays.copyOf(배열, 복사 범위)
int [] newCard = Arrays.copyOf(card, card.length);
System.out.println(Arrays.toString(card));
card[1]=10;
System.out.println(Arrays.toString(card));
System.out.println(Arrays.toString(newCard));
}
}
card 배열 : [3, 1, 4, 5, 10]
card 배열 : [3, 10, 4, 5, 10]
newCard 배열 : [3, 1, 4, 5, 10]
향상된 for 문
for ( int ② num : ① score ) {
③ 실행코드
}
① score : 반복 대상
② num : 변수명
③ 실행코드
<반복 요소가 있을 경우>
① → ② → ③
<반복 요소가 없을 경우>
①
'JAVA > Mentor JAVA' 카테고리의 다른 글
메서드란? (0) | 2023.12.28 |
---|---|
클래스 (0) | 2023.12.25 |
제어문이란? (2) (1) | 2023.12.20 |
제어문이란? (0) | 2023.12.18 |
연산자란? (0) | 2023.12.15 |