Dreaming Dean
Hello, I'm Studying
  • Secure
  • Java
  • Oracle
  • +others
Coding.
I AM STUDYING PROGRAMING LANGUAGE. IF YOU WANT TO SEE MY WORK THE PROGRAMMING PROJECT, CHECK IT OUT MY BLOG AND GITHUB.

Array 배열

Dean92
2017. 5. 16. 18:45

배열

 배열이란 변수의 집합, 같은 데이터 타입의 변수를 하나로 묶은 것으로 많은 양의 값(데이터)을 다룰 때 유용하다. 배열의 각 요소는 서로 연속적이며(메모리도 연속적으로 잡히게 된다.) 배열의 이름(변수)은 연속된 변수들을 참조하기 위한 참조 값이 된다.



배열의 선언과 생성

 타입 또는 변수이름 뒤에 대괄호[ ]를 붙이면 배열이 선언된다.

선언방법
타입[ ] 변수이름; int[ ] data;
String[ ] name
타입 변수이름[ ]; int data[ ];
String name[ ];


 하지만 위와 같이 배열을 선언한다고 해서 값을 저장할 공간이 생성되는 것이 아니라 배열을 다루는데 필요한 변수가 생성된 것이기 때문에 배열을 생성 해야 한다.

int data[ ]; // 배열을 선언한 것이다. 배열을 다루기 위한 참조변수를 선언한 것
data[ ] = new int[5]; // 5개의 int값을 저장할 수 있는 배열을 생성한 것이다.
int data[ ] = new int[5]; // 위 두문장을 한문장으로 만든 것 배열의 선언과 생성을 동시에 한 것이다.


배열의 초기화

배열을 생성하면 배열의 각 요소는 생성한 데이터 타입의 초기값으로 초기화된다. 생성된 배열에 처음으로 값을 저장하는 방법은 아래와 같다.

int[ ] data = new int[5];
data[0] = 10;
data[1] = 20;
data[2] = 30;
data[3] = 40;
data[4] = 50;

선언과 동시에 값을 초기화 하는 방법은 아래와 같다.

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


배열의 활용

배열에 값을 저장하고 읽어오는 방법은 아래와 같다.

data[3] = 100;  // 배열 data의 4번 째 요소에 100을 저장한다.
int value = data[3];  // 배열 data의 4번 째 요소의 저장된 값을 읽어와서 변수 value에 저장한다.


배열의 크기를 알고 싶으면 배열이름.length 를 아래와 같이 사용하면 된다.

int[ ] data = {100, 90, 80, 70, 60, 50};

for (int i=0; I < 6; i++) {
	System.out.println(data[i]);
}

//배열의 크기가 6이므로 data.length는 6이다.
for(int i=0; I < data.length; i++) {
	System.out.println(data[i]);
}


다차원 배열

[ ] 의 개수를 늘리면 차원의 수가 늘어나 다차원 배열이 된다. 아래와 같이 선언하면 2차원 배열이 만들어 지게 된다.

선언방법
타입[ ] [ ] 변수이름; int[ ] [ ] data;
타입 변수이름[ ] [ ]; int data[ ] [ ];
타입[ ] 변수이름[ ]; int[ ] data[ ];


예제

  • Code


    Array.java
    public class Array {
    	int[] human= {1,3,5,7,9};
    //	int[] human= new int[3];
    	int[][] human1= new int[5][5];	
    	int[][] diff = new int[3][];	
    	int value=1;
    	
    //	2차원 배열의 크기가 다를때는 아래와 같이 선언해야 함
    	public void diffArray(){
    		diff[0] = new int[2];
    		diff[1] = new int[4];
    		diff[2] = new int[3];
    	}
    	
    	public void test(){
    		for(int i=0; i < human.length;i++){
    			System.out.println(human[i]);
    		}	
    		
    		System.out.println("");
    		
    		for(int i : human){
    			System.out.println(i);
    		}
    		
    		System.out.println("");
    	}
    	
    	
    	public void test1(){
    		for(int i=0;i < human1.length;i++){
    			for(int j=0;j < human1[i].length;j++){
    				human1[i][j]=value;
    				value++;
    			}
    		}
    		
    		System.out.println("향상된 for문사용");
    		for(int[] first:human1){
    			for(int value:first){
    				System.out.print(value+ " ");
    			}
    			System.out.println();
    		}
    		
    		for(int i=0;i < human1.length;i++){
    			for(int j=0;j < human1[i].length;j++){
    				System.out.print(human1[i][j]+"  ");				
    			}
    			System.out.println();
    		}
    	}
    }
    
  • Code


    ArrayMain.java
    public class ArrayMain {
    
    	public static void main(String[] args) {
    		Array array = new Array();
    		array.test();
    		array.test1();
    	}
    
    }
    
  • Result





Comments