배열 변수. length;
int[] intArray = {10, 20, 30};
int num = intArray.length;
System.out.println(num); // 3
0 | 1 | 2 | |
---|---|---|---|
0 | ( 0, 0 ) | ( 0, 1 ) | ( 0, 2 ) |
1 | ( 1, 0 ) | ( 1, 1 ) | ( 1, 2 ) |
int[][] scores = new int[2][3];
이 코드는 다음과 같이 3개의 배열 객체를 생성한다.
배열 변수인 scores는 길이가 2인 배열A를 참조한다.
배열A의 scores[0]은 다시 길이가 3인 배열B를 참조하고 scores[1]은 길이가 3인 배열C를 참조한다.
이처럼 자바는 1차원 배열이 서로 연결된 구조로 다차원 배열을 구현하기 때문에 계단식 구조를 가질 수도 있다.
String[] strArray = new String[3];
strArray[0] = "Java";
strArray[1] = "Java";
strArray[3] = new String("Java");
System.out.println(strArray[0] == strArray[1]); // true (같은 객체를 참조)
System.out.println(strArray[0] == strArray[2]); // false (다른 객체를 참조)
System.out.println(strArray[0].equals(strArray[2])); // true (문자열이 동일)
위 코드를 실행하면 메모리에 다음과 같이 배열 객체가 생성된다.
int[] oldIntArray = { 1, 2, 3 };
int[] newIntArray = new int[5];
for (int i = 0; i < oldIntArray.length; i++) {
newIntArray[i] = oldIntArray[i];
}
for (int i = 0; i < newIntArray.length; i++) {
System.out.println(newIntArray[i]); // 1 2 3 0 0
}
System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length);
String[] oldStrArray = { "java", "array", "copy" };
String[] newStrArray = new String[5];
System.arraycopy(oldStrArray, 0, newStrArray, 0, oldStrArray.length);
for (int i = 0; i < newStrArray.length; i++) {
System.out.println(newStrArray[i]); // java array copy null null
}
for ( 타입 변수 : 배열 ) {
실행문
}
int[] scores = { 95, 71, 84, 93, 87 };
int sum = 0;
for (int score : scores) {
sum = sum + score;
}
System.out.println("점수 총합 = " + sum); // 점수 총합 = 430
double avg = (double) sum / scores.length;
System.out.println("점수 평균 = " + avg); // 점수 평균 = 86.0
열거타입 변수;
열거 상수를 저장하기 위해서는 아래와 같이 사용한다.
열거타입 변수 = 열거타입.열거상수;
한 번에 이해되지 않더라도 차근차근