minlog
article thumbnail

 

1차원 배열

 

배열이란 하나의 변수를 사용하더라도 10개의 데이터를 저장 할 수 있는 것.

  • 동일한 자료형의 순차적 자료 구조
  • 인덱스 연산자[ ]를 이용하여 빠른 참조가 가능
  • 물리적 위치와 논리적 위치가 동일
  • 배열의 순서는 0부터 시작
  • 자바에서는 객체 배열을 구현한 ArrayList를 많이 활용함

 

배열 표기법

💡 타입 식별자[ ]   |  타입 [ ]  식별자

int arr[]; // 여러개의 int 값이 들어갈 수 있는 배열 선언
int [] arr;

 

 

배열의 선언과 초기화 

💡 배열 변수 선언  |   int arr [ ] ;

주소값이 들어갈 수 있는 변수로 참조 변수라고 한다. 

단 한개의 데이터 형를 저장할 수 있는 메모리가 확보 ( 변수 생성, 주소값 없음)

 

💡 배열 생성   |   new int [ 배열 길이 ];

new 생성자를 선언해야지만 사용가능, 배열이 선언되면 동시에 초기화 되며 메모리가 생성된다. (주소값 생성)

초기화된 값은 정수 0 / 실수 0.0 / 객체 null 이 들어간다.

 

💡 배열 초기화  |  arr [0] = 10;  arr [1] = 20;

배열의 실제 값을 넣어주는 것.

 

 

 

배열 사용법 3가지

1. 배열 선언과 생성 분리

int arr [ ];

arr = new int [ 배열 길이 ] ;

arr [ 0 ] = 10 ;

arr [ 1 ] = 20 ;

 

3. 배열 선언과 생성을 함께

int arr [ ] = new int [ 배열 길이 ] ;

arr [ 0 ]  = 10;

arr [ 1 ]  = 20;

 

2. 배열 선언, 생성, 초기화 동시  :  배열의 길이 생략 가능

int arr [ ] = { 10, 20, 30, 40, 50 }  또는

int arr [ ] = new int [ ] { 10, 20, 30, 40, 50 }

 

 

배열의 이용 (배열 출력)

배열은 주로  FOR문과 함께 사용된다.

배열의 index 이용하여 배열 안에 있는 값을 출력할 수 있다.

 

1. 일반 FOR문

int arr[] = {10,20,30,40,50}; //arr3[0],arr3[1],...
for(int i = 0; i < arr.length ; i++) {
	System.out.println("arr["+ i + "] = " + arr[i]);
}

 

  • index 0 부터 시작 된다.
  • 배열.length 는 배열 길이(개수)이다.
  • 각 i 번째 배열의 값을 알수 있다. ( 예시출력값 : arr [ 0 ] = 10 )

 

2. 향상된 FOR문

💡 for ( 자료형 변수명 : 배열 ) {   배열의 갯수 만큼 For문이 돌아간다   } 

int arr[] = {10,20,30,40,50};
for(int n : arr){
	System.out.print(n + ",");
}

 

 

  • 배열 안에 값을 가져올때 주로 사용된다.
  • 일반 FOR문과 달리 인덱스는 가져올 수 없다.

 

3.  배열의 길이(length)와 실제 값이 들어간 개수는 동일 하지 않을 수 있다.

이럴때는 요소의 개수에 대한 변수(Count)를 따로 유지해주는 것이 좋다.

double[] dArr = new double[5];
int count = 0;
dArr[0] = 1.1; count++; 
dArr[1] = 2.1; count++;
dArr[2] = 3.1; count++;
		
double mtotal = 1;
for(int i = 0; i< count; i++) {
	mtotal *= dArr[i];
}
		
System.out.println(mtotal);

 

 

 


 

 

2차원 배열

2차원 배열은 1차원 배열의 안을 하나더 배열로 나눈 것이다. 

 

💡 타입 식별자[ ][ ]  |  타입 [ ][ ]  식별자

💡 int arr [ ][ ] = new int [1차원 배열 길이] [2차원 배열 길이] 

int arr[][];
int[][] arr;

 

 

 

2차원 배열 사용법 3가지

1. 배열 선언과 생성 분리

int arr [ ] [ ];

arr = new int [2] [2] ;

arr [ 0 ] [ 0 ] = 10 ;

arr [ 0 ] [ 1 ] = 20 ;

arr [ 1 ] [ 0 ] = 10 ;

arr [ 1 ] [ 1 ] = 20 ;

 

3. 배열 선언과 생성을 함께

int arr [ ] = new int [2] [4] ;

arr = { {1,2,5,6} , {1,4,5,6} }

 

2. 배열 선언, 생성, 초기화 동시  :  배열의 길이 생략 가능

int arr [ ] [ ]= { {1, 2, 3} ,  {3,4,6} , {4,1,3} }

 

3. 2차원 배열의 크기를 다르게 생성하는 방법

3 - 1 . int arr[][] = new int[3][];

new int [0][2];

new int [1][2];

new int [2][3];

new int [3][4];

 

3 - 2 . int arr [ ] [ ]= { {1, 2, 3} ,  {3,4,6} , {4,1} }

 

 


 

2차원 배열의 이용 (배열 출력)

중첩 FOR문

int arr3[][] = {{1,2},{3,4},{5,6}};
for(int i=0;i<arr3.length;i++){
	for(int j=0;j<arr3[i].length;j++){
		System.out.println("arr3[" + i + "]["+j+"] = "+ arr3[i][j]);
	}
}

>>value : 
arr3[0][0] = 1;
arr3[0][1] = 2;
arr3[1][0] = 3;
arr3[1][1] = 4;
arr3[2][0] = 5;
arr3[2][1] = 6;

 

 

🍫  구구단 2~9 단까지 전체를 2차원 배열에 넣어서 출력하기

int x2[][] = new int [8][9];

for (int i = 0; i < x2.length; i++) {			
	for (int j = 0; j < x2[i].length; j++) {
		
		x2[i][j] = (i+2)*(j+1);
		
		System.out.println((i+2) + "*"+ (j+1) +"=" + x2[i][j]);
	}
}
profile

minlog

@jimin-log

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!