[Java] 참조 타입_1차원 배열, 다차원 배열

jeong·2021년 5월 15일
0

Java 자바

목록 보기
8/28

참조 타입_1차원 배열, 다차원 배열

배열(array)

배열 : 같은 타입의 변수를 하나로 묶어서 다루는 것
많은 양의 값(데이터)을 다룰 때 유용하다.

배열 선언 / 배열 생성

//=> 타입, 변수 이름 뒤 대괄호[]를 붙여 배열을 선언한다
//선언방법 
타입[]변수이름;	
ex) int[] score;, String[] name;

타입 변수이름[];	
ex) int score[]; String name[];

int[]score; //배열을 선언한다. 
score = new int[5]; //배열을 생성한다.
//=> 위의 두문장을 하나로 만들기
int[]score = new int[5];

배열 길이

배열이름.length로 길이를 표현한다.

int[] score={100,90,80,70,60,50};
for(int i=0; i<score.length; i++) {
	System.out.println(score[i])
}
// =(i<6)

배열의 활용

  • 배열을 초기화 : 생성된 배열에 처음으로 값을 저장하는 것
  • 배열에 값을 저장하고 읽기

다차원 배열

'[]'의 개수가 차원의 수를 의미

다차원 배열 선언 / 배열 생성

//선언방법
타입[][] 변수이름;	
ex) int[][] score;
타입 변수이름[][];
ex) int score[][];
타입[] 변수이름[];
ex) int[] score[];
int[][] score=new int[5][3];
//5행 3열의 2차원 배열을 생성한다. 
	int[][]score={
    		    {100,100,100}
    		    { 10, 10, 10}
                    { 20, 20, 20}
                    { 40, 40, 40}
                    { 50, 50, 50}
                }

배열의 복사

배열은 한 번 생성하면 크기를 변경할 수 없기 때문에
더 많은 저장 공간이 필요하면 큰 배열을 새로 만들어 이전 배열 값을 복사해야 한다.

for문을 사용한 배열의 복사

int[] number={1,2,3,4,5};
int[] newNumber=new int[10];

for(int i=0; i<numver.length;i++) {
	newNumber[i]=number[i]; 
} 
//배열 number의 값을 newNumber에 저장한다. 

System.arraycopy()를 사용한 배열의 복사

System.arraycopy(arr1, 0, arr2, 0, arr1.length);

//예시
//arrayNumber를 newArrayNumber에 복사해 저장
public static void main(String[] args) {
	String[] arrayNumber={"java", "array", "copy"};
    String[] newArrayNumber=new String[5];
    
    System.arraycopy(arrayNumber, 0, newArrayNumber, 0, arrayNumber.length);
    
    for(int i=0; i<newArrayNumber.length; i++) {
  	 System.out.print(newArrayNumber[i]+",");	
    }    
}

Enhanced for문

for (타입 변수이름 : 배열이나 컬렉션이름) {
배열의 길이만큼 반복적으로 실행하려 하는 명령문;
}

명시한 배열이나 컬렉션의 길이만큼 반복되어 실행됩니다. 루프마다 각 요소는 명시한 변수의 이름으로 저장되고, 명령문에서 이 변수를 사용해 각 요소를 참조할 수 있다.
Enhanced for문은 요소를 참조할 때만 사용하는 게 좋고 요소값을 변경하는 작업에는 적합하지 않다.

//Enhanced for를 사용해 각 배열요소의 값을 출력해보는 예시
int[] arr=new int[]{1,2,3,4,5};

for(int e:arr){
	System.out.print(e+" ");
} //출력값 : 1,2,3,4,5
profile
배우는 초보개발자

0개의 댓글