📌 배열 , 2차원 배열
- 배열(array)은 인덱스(index)와 인덱스에 상응하는 데이터들로 이루어진 연속적인 자료구조
- 배열은 기본형 배열과 참조형 배열로 나뉜다.
- 데이터형[] 배열이름 = new 데이터형[ ]
- 데이터형 배열이름 [] = new 데이터형 [ ]
- int [] aa = new int[4]
[ 기본형 배열 ]
- 기본형 배열이란 primitive(int, double) 타입의 변수를 여러개 선언할 필요가 있을 때 사용한다.
[ 참조형 배열 ]
- 참조형 배열이란 배열의 타입이 기본형이 아닌 경우를 말한다.
- 배열 변수가 참조하는 배열의 공간이 값을 저장하는 것이 아니라 값을 참조한다는것을 의미
1️⃣ 배열 선언 및 생성
- 배열에 대한 레퍼런스 변수 선언(=intArray) -1
- 배열 생성 - 배열의 저장 공간 할당 -2
- 자바는 배열을 객체로 다룬다.
- 메모리 상에서 생성된 클래스를 객체 혹은 인스턴스라고 한다.
- 레퍼런스 변수란?
- 레퍼런스 변수는 메모리상에 생성된 인스턴스를 가리키는데 사용되는 변수이다.
//(1) 배열에 대한 레퍼런스 변수 intArray 선언
int intArray [];
// 배열타입 int
// 배열에 대한 레퍼런스 변수 intArray
// 배열선언 []
//(2) 배열생성
intArray = new int [5];
// 배열에 대한 레퍼런스 변수 intArray
// 배열생성 new
// 타입 int
// 원소 개수 5
❗ 배열 선언 : int Array[];
- 선언만으로는 배열 공간이 할당되지 않으며 레퍼런스 변수 intArray만 생성된다.
- intArray는 배열 공간에 대한 주소 값 (레퍼런스 값)을 가지며 그 자체가 배열은 아니다.
❗배열 생성 - > intArray = new int[5];
- 배열 생성은 데이터를 저장할 배열 공간을 할당받는 과정이다.
- 반드시 new연산자 를 이용하여 배열을 생성하며 [] 안에 생성할 원소 개수를 지정한다.
- 배열 선언과 배열 생성을 동시에
int intArray[] = new int[5];
❗ 배열 초기화
int intArray[] = {4, 3, 1, 0};
//자동으로 크기가 4가 된다.
double doubleArray[] = {0.01, 0.02};
//자동으로 크기가 2가 된다.
int array[]=new int[]{1,2,3,4};
// 크기가 4 초기화 가능
int[] array3 = {1,2,3,4};
//초기화 값 지정시 new 사용 안 하고 바로 가능
❗ 배열 치환
- intArray 배열이 복사되는 것이 아닌, 배열에 대한 주소만 복사된다.
- myArray는 intArray의 배열을 공유하게 되고, myArray는 intArray의 배열 원소를 마음대로 접근할 수 있다.
int intArray[] = new int[3];
int myArray[] = intArray;
//같은 주소값을 가리키게 된다.
intArray[1] = 2;
myArray[1] = 6
System.out.println(intArray[1]); // 결과 6
System.out.println(myArray[1]); // 결과 6
2️⃣ 2차원 배열 선언,생성
//2차원 배열 선언
int intarray[][];
int [][] intarray;
//2차원 배열 생성
array= new int[2][]
int array[][]=new int[][]
int array[][] = new int[3][4]
//앞이 row 뒤가 col
- array[n].length : n번째 행의 열의 개수
- array[1].length : 1번째 행의 열의 개수
- array.length : 전체 행의 개수
❗ 2차원 배열 생성 예시
int i[][]=new int[2][5];
int size1=i.length; //2
int size2=i[0].length; //5
int size3=i[1].length; //5
❗ 행만 생성하고 싶다면
int array[][] = new int[3][];
❗ 배열의 초기화
- 3행에 열의 개수가 각각 1, 2, 3인 비정형 배열이다.
int array[][] = {{1}, {1,2}, {1,2,3} } ;
📌 Arrays
❓ 배열을 다룰때 사용하는 유틸리티
1️⃣ 배열 복사
- java.util.Arrays.copyof 로 사용된다.
- java.util.Arrays.copyOf(copyFrom, 5(=복사할 배열의 길이) );
- 복사할 배열의 크기를 지정할 수 있다.
- Ex . 배열에서 최대 5개의 요소를 복사하여 새로운 배열을 생성
int[] copyFrom = {1, 2, 3};
int[] newArray = Arrays.copyOf(copyFrom, 5);
2️⃣ 배열 비교
- java.util.Arrays.compare로 사용된다.
- Arrays.compare(array1, array2);
- 선행 파라미터(=array1) 를 기준으로 계산된다.
- 코드 예시
- 배열이 같다면 : 0을 반환한다.
- array1 비교 중 array2 의 값이 더 작으면 : 1을 반환한다.
- array1비교 중 array2 의 값이 더 크면 : -1을 반환한다.
- array1[0] = 1
- array2[0] = 3
- 1-3 = -2 이기 때문에 -1을 반환한다.
int[] array1 = {1, 2, 3};
int[] array2 = {3, 2, 3};
imt compare = Arrays.compare(array1, array2);
'JAVA' 카테고리의 다른 글
[ java ] 객체지향 프로그래밍(클래스, 생성자, 메서드, 필드) (1) | 2024.12.05 |
---|---|
[ java ] Random, Math.Random (0) | 2024.12.05 |
[ java ] String 클래스(문자열 분리, 비교) (0) | 2024.12.04 |
[ java ] Comparator, Comparable 차이 (0) | 2024.12.03 |
[ java ] Comparable, Comparator 와 정렬의 관계 (0) | 2024.12.03 |