Array 란?
참조형 변수 중 하나, 배열(Array)은 앞으로 아주 많이 사용 될 컨테이너 객체이다.
참조형 변수 중 하나, 배열(Array)은 앞으로 아주 많이 사용 될 컨테이너 객체이다.
참조형 변수의 특징인 주소값을 저장하며 주소값은 값을 바라보고 있는 특징을 가지고 있다.
배열은 하나의 객체안에 여러 데이터들을 모아 저장할 수 있어 데이터를 구조적, 효율적으로 다룰 수 있다.
배열을 구성하는 값을 배열 요소(element)라고 부르며 배열에서의 위치를 가리키는 숫자를 인덱스(index)라고 부른다.
배열 생성
기본적인 배열 생성 방법, 배열의 크기(length)를 지정 할 수 있다.
int[] intArray = new int[3];//정수형 배열 초기값 0 => {0,0,0}boolean[] booleanArray = new boolean[3];//논리형 배열 초기값 false => {false, false, false}
String[] stringArray = new String[3];//문자형 배열 초기값 null => {"", "", ""}
Java
복사
배열 선언-이후 초기화 방식 생성 방법
int[] intArray2;
intArray2 = new int[3]; //{0,0,0}
Java
복사
배열 조회
단건 조회
int[] intArray = new int[3]; //정수형 배열 초기값 0 => {0,0,0}
System.out.println(intArray[0]); //index 0,1,2 처럼 접근
Plain Text
복사
다수 조회1 기본 for문
for (int i = 0; i < intArray2.length; i++) {
System.out.println(intArray2[i]);//i => index로 대입되니까
}
Java
복사
다수 조회2 확장 for문
for (int item: intArr){
System.out.println(item);
Java
복사
배열 초기화
선언 시 직접 특정 값을 대입해서 할당
int[] intArr = {1,2,3,4,5};
String[] stringArr = {"a", "b", "c", "d"};
Java
복사
for문을 통한 대입 할당
for(int i=0;i<intArr.length;i++){
intArr[i] = i;// i를 왼쪽 intArr에 대입한다(대입연산) == 넣는다, 담는다.
}
Java
복사
배열의 복사
얕은 복사(Shallow Copy)
b[]는 a[]배열 자체를 할당 했기 때문에
a[]와 b[]의 각 주소값이 같은 값(element)를 바라보고 있다.
둘 중 하나 엘리먼트를 1개만 변경해도 다른 하나도 함께 변경 된다.
public static void main(String[] args) {
int[] a = {1, 2, 3, 4};
int[] b = a;// 얕은 복사(Shallow Copy)
System.out.println(b[0]);
b[0] = 4;
System.out.println(b[0]);
System.out.println(a[0]);
Java
복사
깊은 복사(Deep Copy)
위 처럼 얕은 복사를 의도하지 않은 것이며 객체 자체를 클론하는 것이 목적이라면
Arrays 클래스의 메서드인 copyOf 메서드를 활용하여 복사해야 한다.
a[]를 통해 새로운 배열 객체 b[]를 생성해야 한다.
각각 주소값이 각자의 값을 바라보고 있기 때문에 둘 중 한 배열의 element를 변경 하더라도 다른 배열에 영향을 주지 않는다.
int[] a = {1, 2, 3, 4};
int[] b = Arrays.copyOf(a, a.length);// 깊은 복사(Deep Copy)
System.out.println(b[0]);
b[0] = 4;
System.out.println(b[0]);
System.out.println(a[0]);
Java
복사
Arrays 클래스의 메서드 사용해보기
Arrays.fill : 배열의 주소를 모두 같은 값으로 초기화 시킴
Arrays.fill(intArr, 1);
Java
복사
그 외 Arrays 클래스의 메서드 기능을 이용하려면 공식 문서에서 찾을 수 있다.