본문 바로가기
Work & Study/JAVA (& 혼공자Java)

자바(Java) - 배열2

by a.k.a DUKI 2020. 9. 22.
728x90
반응형

배열 길이

배열의 길이란 배열에 저장할 수 있는 전체 항목의 개수를 말한다.

length필드를 통해 배열의 길이를 얻을 수 있다.

 

배열 변수.length;

int[] intArray = {5, 10, 15};
int num = intArray.length;
System.out.println(num);

 

배열 예시1)

 

 

 

명령 라인 입력

프로그램 실행을 위해 main()메소드가 필요하다는 것을 알고 있다.

하지만 메소의 매개값인 String[] args가 왜 필요한지, 알아보자.

public static void main(String[] args) {...}

 

실행할 때 명령라인이 매개값을 주지 않았을 경우 길이 0인 String 배열 생성 후 main 메소드를 호출 한다.

혼공자 유툽 참고

실행할 때 명령라인 매개값ㅇ르 주었을 경우 아래처럼 실행된다.

혼공자 유툽 참고

배열 예시2)

예제를 그냥 실할하면 위의 '값의 수가 부족하다' 라는 답만 얻을 수 있다.

실행할 때 매개값을 주지 않으면 길이 0인 String 배열이 매개값으로 전달 되기 때문이다.

 

명령 프롬프트로 아래와 같이 설정 하면, 실행결과를 3 + 5 = 8 이라는 값을 얻을 수 있다.

혼공자 유툽 참고

 

 

 

다차원 배열

2차원 배열은 수학의 행렬 같은 모양으로, 가로 세로 인덱스를 사용한다.

혼공자 유툽 참고

 

이 코드는 메모리에 3개의 배열 객체를 생성한다.

int[][] scores = new int[2][3];

혼공자 유툽 참고

  • scores 배열 변수는 길이가 2인 배열 A를 참조한다.
  • 배열A의 scores[0]은 다시 길이가 3인 배열 B를 참조한다.
  • scores[1]은 길이가 3인 배열 C를 참조한다.
  • scores[0]과 scores[1]은 모두 배열을 참조하는 변수 역할을 한다.

각배열의 길이는 다음 과 같이 얻을 수 있다.

scores.length    // 2 (배열 A의 길이)
socres[0].length // 3 (배열 B의 길이)
scores[1].length // 3 (배열 C의 길이)

 

만약 그룹화된 값 목록을 가지고 있다면 아래와 같이 이중 중괄호를 이용해서 표현 가능하다.

타입[][] 변수 = {{값1, 값2, ..}, {값1, 값2, ...}};
         	  //그룹 0 값 목록    그룹 1값 목록
              
int[][] scores = {{10,20}, {15,30}};
int score = scores[0][0]; // 10
int socre = scores[0][1]; // 20
int score = scores[1][0]; // 15
int score = socres[1][1]; // 30

이렇게 표현하니 조금은 이해가 되는 듯 하다.

 

 

배열 예시3)

int[][] mathScores = new int[2][3];
for (int i = 0; i < mathScores.length; i++) {
	for (int j = 0; j < mathScores[i].length; j++) {
		System.out.println("mathScores[" + i + "][" + j + "]= " + mathScores[i][j]);
	}
}

 

배열 예시4)

int[][] engScores = new int[2][];
engScores[0] = new int[2]; // 배열길이 2로 대입
engScores[1] = new int[3]; // 배열길이 3로 대입
for (int i = 0; i < engScores.length; i++) {
	for (int j = 0; j < engScores[i].length; j++) {
		System.out.println("engScores[" + i + "][" + j + "]= " + engScores[i][j]);
	}
}

 

배열 예시5)

int[][] comScores = {{90, 95}, {88, 100, 93}};
for (int i = 0; i < comScores.length; i++) {
	for (int j = 0; j < comScores[i].length; j++) {
		System.out.println("comScores[" + i + "][" + j + "]= " + comScores[i][j]);
	}
}

 

 

 

 

 

 

 

 

※용어 정리

  • 배열생성: 배열은 두 가지 방법으로 생성한다. 
    • {값1, 값2, 값3, ...}; 처럼 값을 목록으로 생성
    • new 타입[길이]; 로생성
  • 배열 길이: 배열에 저장될 수 있는 항목(값)의 수 이다. 배열의 length필드에 저장되어 배열의 길이를 읽을 수 있다.
  • 다차원 배열: 배열 항목(값)이 또 다른 배열을 참조할 때를 말한다. 
    • 타입[][] 변수 = new 타입[길이1][길이2]; 로 선언

 

 

본 내용은 #혼자공부하는자바 책을 참고해 공부하려 작성했습니다.
728x90
반응형