Categories: 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

Recent Posts

Java 총정리[97. Java GUI]

Java GUI Java GUI에 대해서 이번 걸음에서 배움으로써 GUI에 전반적인 지식과 Java GUI를 구현하는 방법…

7개월 ago

Java 총정리[96. Java TCP 통신 프로그램 구현]

Java TCP 통신 프로그램 구현 Java TCP 통신 프로그램 구현을 위해서 이전 걸음에서 쓰레드에 대한…

7개월 ago

Java 총정리[95.쓰레드 통신]

쓰레드 통신 이전 걸음에서 쓰레드의 임계영역에 대해서 같이 공부를 했습니다. 동기화에 대한 개념을 계속적으로 하고…

7개월 ago

Java 총 정리[94. 쓰레드 임계영역]

쓰레드 임계영역 이전 걸음에서 쓰레드의 동기화에 대해서 같이 공부를 했습니다. 동기화에 대한 전반적인 내용을 공부하고…

8개월 ago

Java 총 정리[93. 쓰레드 동기화]

쓰레드 동기화 이전 걸음에서 계속 쓰레드에 대해서 공부를 하고 있습니다. 쓰레드는 상당히 중요한 개념이기 때문에…

8개월 ago

Java 총 정리[92. 쓰레드 join()]

쓰레드 join() 이전 걸음에서 쓰레드의 전반적인 실행 흐름에 대해서 공부를 했습니다. 이제 배운 실행 흐름…

8개월 ago

This website uses cookies.