본문 바로가기

Java/Learn_Java

5. 참조 타입

- 배열

값 목록으로 배열 생성

public class ArrayCreateByValueListExample1 {
	public static void main(String[] args) {
		int[] scores = { 83, 90, 87 }; //int 데이터타입[] 변수 scores = {값들}

		System.out.println("scores[0] : " + scores[0]); //배열의 첫번째
		System.out.println("scores[1] : " + scores[1]); //배열의 두번째
		System.out.println("scores[2] : " + scores[2]); //배열의 세번째

		int sum = 0;
		for (int i = 0; i < 3; i++) {
			sum += scores[i]; //scores 배열의 0,1,2번째 값을 더함
		}
		System.out.println("총합 : " + sum); //for문에서 더했던 값 출력
		double avg = (double) sum / 3; //실수값으로 출력해야함
		System.out.println("평균 : " + avg); //평균값 출력
	}
}

 값의 리스트로 배열 생성

public class ArrayCreateByValueListExample {
	public static void main(String[] args) {
		int[] scores; // int 배열 생성
		scores = new int[] { 83, 90, 87 }; // 새롭게 배열 객체 생성
		int sum1 = 0;
		for (int i = 0; i < 3; i++) {
			sum1 += scores[i]; // 0, 1, 2번째 배열 literal 모두 더함
		}
		System.out.println("총합 : " + sum1);

		int sum2 = add(new int[] { 83, 90, 87 }); // 새로운 배열 객체 sum2로 생성
		System.out.println("총합 : " + sum2);
		System.out.println();

	}

	public static int add(int[] scores) {
		int sum = 0;
		for (int i = 0; i < 3; i++) {
			sum += scores[i];
		}
		return sum;
	}
}

new 연산자로 배열 생성

public class ArrayCreateByNewExample {
	public static void main(String[] args) {
//		arr1 배열
		int[] arr1 = new int[3];
		for (int i = 0; i < 3; i++) {
//			arr1 배열의 0, 1, 2번째까지 반복 출력
			System.out.println("arr1[" + i + "] : " + arr1[i]);
		}
//		배열 하나씩 지정
		arr1[0] = 10;
		arr1[1] = 20;
		arr1[2] = 30;
		for (int i = 0; i < 3; i++) {
			System.out.println("arr1[" + i + "] : " + arr1[i]);
		}

//		arr2배열
		double[] arr2 = new double[3];
		for (int i = 0; i < 3; i++) {
			System.out.println("arr2[" + i + "] : " + arr2[i]);
		}

//		배열 하나씩 지정
		arr2[0] = 0.1;
		arr2[1] = 0.2;
		arr2[2] = 0.3;
		for (int i = 0; i < 2; i++) {
			System.out.println("arr2[" + i + "] : " + arr2[i]);
		}

//		arr3배열
		String[] arr3 = new String[3];
		for (int i = 0; i < 3; i++) {
			System.out.println("arr3[" + i + "] : " + arr3[i]);
		}

//		배열 하나씩 지정
		arr3[0] = "1월";
		arr3[1] = "2월";
		arr3[2] = "3월";
		for (int i = 0; i < 3; i++) {
			System.out.println("arr3[" + i + "] : " + arr3[i]);
		}
	}
}

 배열 길이 활용하기 - length필드

public class ArrayLengthExample {
	public static void main(String[] args) {
		int[] scores = { 83, 90, 87 };
		int sum = 0;
//		"배열변수".length : 배열의 길이를 나타냄(배열의 항목 수) 
		for (int i = 0; i < scores.length; i++) {
			sum += scores[i];
		}
		System.out.println("총합 : " + sum);

		double avg = (double) sum / scores.length;
		System.out.println("평균 : " + avg);
	}
}

- 배열 속의 배열

public class ArrayInArrayExample {
	public static void main(String[] args) {
		int[][] mathScores = new int[2][3];
		for (int i = 0; i < mathScores.length; i++) {
			for (int k = 0; k < mathScores.length; k++) {
				System.out.println
                ("mathScores[" + i + "][" + k + "] = " + mathScores[i][k]);
			}
		} // for
		System.out.println();
		int[][] englishScores = new int[2][];
		englishScores[0] = new int[2];
		englishScores[1] = new int[3];
		for (int i = 0; i < englishScores.length; i++) {
			for (int k = 0; k < englishScores.length; k++) {
				System.out.println
                ("englishScores[" + i + "][" + k + "] = " + englishScores[i][k]);
//				00, 01, 02, 10, 11, 12 계속 for문안에서 돌아감
			}
		}
	}
}

- 배열 복사

public class ArrayCopy {
	public static void main(String[] args) {
		String[] oldStrArray = { "java", "array", "copy" };
		String[] newStrArray = new String[5];

//		System.arraycopy로 배열 복사
//	oldStrArray의 0번째부터 복사해, newStrArray의 0부터 덮어쓰기.
//		그 뒷값은 없으므로 String의 기본값인 null이 출력됨.  
		System.arraycopy(oldStrArray, 0, newStrArray, 0, oldStrArray.length);
		for (int i = 0; i < newStrArray.length; i++) {
			System.out.print(newStrArray[i] + ", ");
		}
	}
}

- For-each문(향상된 for문)

//	배열이 있을 때 사용 가능

public class AdvancedForExample {
	public static void main(String[] args) {
		int[] scores = { 95, 71, 84, 93, 87 };

		int sum = 0;
//		scores 배열에서 가져올 수 있는 항목 수 만큼 index를 가져옴. 
		for (int score : scores) {
			sum = sum + score;
		}
		System.out.println("점수 총합 = " + sum);

		double avg = (double) sum / scores.length;
		System.out.println("점수 평균 = " + avg);
	}
}

 

'Java > Learn_Java' 카테고리의 다른 글

6. 클래스_연습문제(은행 계좌)  (0) 2020.04.05
5. 참조 타입_연습문제  (0) 2020.04.05
4. 조건문과 반복문_활용문제  (0) 2020.03.29
3. 연산자_연습문제  (0) 2020.03.29
3. 연산자  (0) 2020.03.28