[Java] 배열(Array)_선언,생성,초기화,

현굥·2024년 7월 30일

Java

목록 보기
2/8

배열의 특징

  • 배열은 같은 타입의 데이터만 저장할 수 있다.
  • 한번 생성된 배열은 길이를 늘리거나 줄일 수 없다.

배열선언

  • 배열을 사용하기 위해선, 배열을 선언해야한다.
int intArray[] ;
char charArray[];

  • 배열을 선언하면 다음과 같이 참조변수가 생성된다.

배열생성

int intArray[] = new int[10];
char charArray[]= new char[20];

배열선언과 배열생성의 차이 ?

  • 배열선언은 배열의 데이터 타입과 이름을 지정하는 과정입니다.
    이때, 메모리 할당은 이루어지지 않습니다. 배열은 단지 배열을 사용할 준비만 하는 것 입니다.
  • 배열 생성을 통해 실제 배열 객체가 메모리에 할당됩니다. 배열 생성 시 배열의 크기를 지정해야하며, 이에따라 메모리가 할당됩니다.
  • 배열생성은 'new' 키워드를 사용하여 이루어집니다.
int i[] = new int[10];

  • 위의 코드에서, 크기가 10인 정수배열을 생성하고, 이 배열은 메모리의 힙영역에 할당됩니다.
  • 생성된 배열의 시작주소는 i 참조변수에 저장됩니다.
  • 참조변수는 메모리의 스택영역에 저장됩니다.

배열의 초기화

  • 배열을 생성하면서 동시에 초기화 해줄 수 있습니다.
int intArray[] = {1,2,3,4,5};

배열인덱스와 원소접근

  • 배열은 인덱스를 통해 각각의 원소에 접근할 수 있습니다.
intArray[0] = 5;

레퍼런스 치환과 배열의 공유

  • 하나의 배열을 다수의 레퍼런스가 참조 가능
int intArray[] = new int[5];
int myArray[] = intArray;

배열의 크기와 length

  • 배열의 크기는 length으로 찍어볼 수 있다.
int intArray[] = new int[5];
int size = intArray.length; // 5 

2차원 배열

2차원 배열은 다음과 같이 행과 열로 이루어져 있습니다.

int i[][] = new int[2][5];

2차원 배열을 확장하여 비정형 배열 또한 존재합니다.

비정방형 배열

int[][] irregularArray = {
    {1, 2},
    {3, 4, 5},
    {6, 7, 8, 9}
};

// 각 행의 열 길이 확인
for (int i = 0; i < irregularArray.length; i++) {
    System.out.println("Number of columns in row " + i + ": " + irregularArray[i].length);
}

// Number of columns in row 0: 2
// Number of columns in row 1: 3
// Number of columns in row 2: 4

배열의 행 길이

  • 배열의 행 길이는 최상위 배열의 길이입니다.
int[][] array = {
    {1, 2, 3, 4},
    {5, 6, 7, 8},
    {9, 10, 11, 12}
};

int numRows = array.length; // 행의 길이
System.out.println("Number of rows: " + numRows); // 출력: Number of rows: 3

배열의 열 길이

  • 각 행의 열 길이는 해당 행의 배열의 길이입니다.
int numCols = array[0].length; // 첫 번째 행의 열 길이
System.out.println("Number of columns in the first row: " + numCols); // 출력: Number of columns in the first row: 4

메소드에서 배열 리턴

  • 메소드에서 배열을 리턴할 땐, 배열의 레퍼런스를 리턴하게 됩니다.
  • 이때, 메소드의 리턴타입과 리턴받으려는 배열의 타입을 일치시켜 줘야 합니다.
int[] makeArray(){
	int temp[] = new int[4];
   	return temp;
}
  • 위의 코드에서 'temp'변수는 레퍼런스 변수이므로, makeArray메소드는 배열의 레퍼런스를 리턴하게 됩니다.

0개의 댓글