foxpacking

Programming Lessons

Java 언어 Korean

Java 총 정리 [23. 배열]

배열

현재 저희가 알고 있는 데이터를 가지고 있을 수 있는 개념은 변수 밖에 없습니다. 하지만 변수의 개념을 보면 하나의 변수에 하나의 값을 가질 수 있습니다. 이렇다는 것은 현실에서 볼 때 옮겨야 할 물건이 10개가 있는데 그걸 무조건 하나만 옮겨야 하는 것과 같습니다. 그러면 10번을 움직여야 합니다. 하지만 담을 수 있는 바구니가 있다면 10개를 바구니에 담아서 한번에 옮길 수 있게 됩니다. 이런 실생활에서도 이것을 아는데 사람을 편리하게 하기 위해 나온 Java에서 변수만 있다면 아무도 사용을 하지 않을 것입니다. 여러분도 그렇게 생각을 하시죠? 저 또한 변수만 있다면 프로그래밍 공부를 할 필요성을 못 느낍니다.

위에 상황에서 말한 것처럼 하나의 변수에 하나만 담아 사용을 한다면 여러 개의 데이터를 관리 할 때 너무 소스가 불필요하게 길어지고 가독성 또한 좋지 못할 것입니다. 그래서 하나의 변수에 여러 개의 값을 관리 할 수 있는 무언가를 Java에서 제공을 해주고 있습니다. 이 글을 끝까지 읽는다면 편리하게 데이터를 관리 할 수 있는 하나의 변수에 여러 개의 값을 관리하는 것을 알게 될 것이빈다.

하나의 변수에 여러 개의 값을 관리하는 것을 바로 배열이라고 부릅니다. 배열은 하나의 변수가 여러 개의 값을 관리 함으로써 데이터 관리에 효율을 올릴 수 있고 또한 코드를 좀 더 간결하게 만들 수 있습니다. 이 글을 끝까지 읽는다면 배열에 대해 완벽히 이해를 하실 수 있습니다.

배열 이란?

배열 사진

위의 사진처럼 배열은 서랍장 같이 물건들을 한 곳에 보관 하는 개념과 비슷합니다. 그래서 위의 사진으로 이해를 하시면 도움이 됩니다. 

배열의 선언 방법

int[] a = new int[5];

자료형을 먼저 선언을 하고 그 뒤에 배열 연산인 대괄호 두 개를 같이 씁니다. 그리고 변수처럼 이름을 명명하고 그 다음에 new라는 명령어와 앞에 선언한 같은 자료형 이후에 대괄호 안에 숫자를 넣어주면 됩니다.

위와 같이 선언을 하면 int자료형을 담을 수 있는 배열 a가 선언 되고 그 배열의 크기가 5가 되는 것입니다.

여기서 배열의 특징을 알아 보겠습니다. 

  1. 배열은 처음에 정한 자료형만 값으로 담을 수 있다. 당연하지만 int로 만들었으면 int만 그 배열에 들어 갈 수 있습니다. 
  2. 배열을 생성을 할 때 크기를 미리 정해줘야 합니다. 몇 개를 담을 수 있는 배열인지 먼저 정하고 사용을 해야 합니다.
  3. 배열에는 인덱스가 있어서 인덱스를 이용해 값을 넣거나 가져 올 수 있습니다. 예) a[0] = 10; //a배열 0번째 인덱스에 정수 값 10을 대입합니다. System.out.println(a[0]); 이렇게 호출을 하면 a배열의 0번째 인덱스에 있는 값이 출력이 됩니다.
  4. 배열의 인덱스는 제로베이스를 사용하기 때문에 첫 번째가 1이 0부터 시작한다.
  5. 배열은 인덱스 개념이 있기 때문에 반복문을 사용을 할 수 있습니다.
  6. 배열은 선언과 동시에 초기화를 진행을 할 수 있습니다. 예) int[] a = {1,2,3,4,5} 이렇게 하면 자동으로 배열 5개가 생성되고 앞에 숫자부터 차례대로 0번 인덱스부터 4번 인덱스까지 값이 대입이 됩니다.
  7. 배열 연산자는 앞뒤가 상관이 없습니다. 예)int[] a, int b[] 하지만 추후 배열인지 변수인지 확인을 위해 첫 번째 방식을 추천드립니다.
배열소스및결과 사진
    
public static void main(String[] args) {
		// TODO Auto-generated method stub
		//1. 변수 5개를 사용
		int a = 10;
		int b = 20;
		int c = 30;
		int d = 40;
		int e = 50;
		System.out.println(a+","+b+","+c+","+d+","+e);
		
		//2. 크기가 5인 배열을 변수 처럼 사용
		int[] arr = new int[5];
		arr[0] = 10;
		arr[1] = 20;
		arr[2] = 30;
		arr[3] = 40;
		arr[4] = 50;
		
		  System.out.println(arr[0]+","+arr[1]+","
		  +arr[2]+","+arr[3]+","+arr[4]);
		
		//3. 크기가 5인 배열을 배열의 좋은 점을 사용
		int[] array = new int[5];
		
		//배열.length는 배열의 길이를 제공합니다.
		//현재 배열의 크기를 5로 했기 때문에 값 5를 줍니다.
		for(int i = 0;i<array.length;i++) {
			arr[i] = (i+1)*10;
		}
		
		for(int i = 0;i<array.length;i++) {
			System.out.println("arr["+i+"] : "+arr[i]);
		}
		
	}        
    
배열선언관련 사진
    
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		// 선언과 동시에 초기화 자동으로 new int[5]가 됩니다.
		// 그리고 값을 순차적으로 넣어줍니다.
		int[] arr = {1,2,3,4,5};  
		//이렇게 선언되면 선언만 한거지 값을 담을 수 있는 공간은 없기 때문에 
		//바로 접근하면 에러가 발생합니다.
		int brr[];
	}        
    

Dolphin

About Author

Leave a comment

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

You may also like

Korean Programming 기초

IT 개발자 VS 프로축구선수 비교?

IT 개발자와 프로축구선수의 같은 점과 다른 점? 프로그래밍 공부를 하시면서 개발자로 취업을 하려고 하는데 과연 취업을 할 수 있을까? IT
Korean 클라우드

AWS 로그인 불가능, AWS고객 센터 이메일 문의 결과는?

AWS 고객센터 이메일 문의 솔직후기 AWS를 사용하기 위해 로그인을 하는 경우 이메일로 코드 번호를 보내지만 이메일로 받을 수 없는 상황이거나