Java

[Java] 배열(array)

maribel 2019. 7. 18. 17:23

1. 배열의 개요

배열 : 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것

  • 배열의 생성
    • 형식) 타입 배열이름[ ] = new 타입[개수];
    • EX  ) int su[ ] = new int[3];
    • 형식2) 타입 배열이름[ ] = {값,값2,값3...};
    • EX    ) int c[ ] = {10,20,30,40,50};

 

2. 배열의 활용 - 최대값,최소값 구하기

public class ArrayTestMax {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int score [] = {79,88,91,33,100,55,95};
		//배열의 값중에서 최대값,최소값을 저장
		int max=score[0];
		int min=score[0];

		for(int i=1;i<score.length;i++) {
			max = Math.max(max, score[i]);
			min = Math.min(min, score[i]);
		}
		System.out.println("최대값(max):"+max);
		System.out.println("최소값(min):"+min);
	}

}

 

3. 2차원 배열

  • 형식1) 자료형 배열명[ ][ ]=new 자료형[행 개수][열 개수];
  • EX    ) int c[ ][ ]=new int[3][3];
  • 형식2) 자료형 배열명[ ][ ]={{값1,값2,....},{값3,값4,....},...};
  • EX    ) int b[ ][ ]={ {10,20,30},{40,50},{60,70,80,90} };
public class DoubleTest {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int c[][] = new int[3][3];
		int b[][] = {{10,20,30},{40,50},{60,70,80,90}};//행이 3개
		
		for (int i = 0; i < b.length; i++) {//행의 배열
			for (int j = 0; j < b[i].length; j++) {
				System.out.println("b["+i+"]["+j+"]="+b[i][j]);
			}//inner for
		}//outer for

	}

}

 

4. 동적 배열

  • 고정 배열 : 처음부터 배열의 크기가 정해져 있는 배열
  • 동적 배열 : 배열에 값을 저장하면 자동으로 크기가 늘어나는 배열
public class VarArgTest {

	//매개변수의 개수와 상관없이 메서드 하나로 통합 -> 동적 배열 이용
	//고정배열
	public void print(String names[]) {
		for (int i = 0; i < names.length; i++) {
			System.out.print(names[i]+"\t");
		}
		System.out.println();
	}
	//동적배열의 값을 출력
	public void print2(String ...names) {
		for (int i = 0; i < names.length; i++) {
			System.out.print(names[i]+"\t");
		}
		System.out.println();
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		VarArgTest vat = new VarArgTest();
		String str[] = {"배열의 활용","2차원 배열","API참조하는 방법"};
		vat.print(str);

		vat.print2("hong");
		vat.print2("hong", "test");
		vat.print2("hong", "test", "imsi");		 

	}

}