배열을 생성하는 이유는 하나의 변수에 여러가지 값을 저장할 수 있기때문이다.
배열
- 같은 타입의 데이터의 집합
배열 이름
- 실제 배열이 존재하는 주소값을 담기 위한 공간
new 연산자를 통해 배열을 생성 할 수 있음.
배열의 단점
- 같은 데이터 타입 밖에 넣을 수 없다.
- 한번 생성된 배열은 그이상 늘어나지 않는다.
배열은 레퍼런스 타입 = 참조타입
레퍼런스타입 - 실제 데이터값이 들어가있는것이 아니라 주소값이 들어가있기 때문이다.
배열을 생성하는방법
주소값을 갖고있는건 어떤의미
- 실제 메모리상의 배열을 가리킬수 있다.
힙 메모리 영역에 할당된 공간을 참조할수있다
- new : 주소를 던져 주는 연산자
- new로 생성한 것들이 존재하는 영역
2차원배열 n명의 학생 점수 총점 평균 구하기
package mission;
import java.util.Scanner;
public class Mission7 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int score[][] = new int[3][5];
String str[] = {"국어", "수학", "영어"};
for(int i=0; i<3; i++){
for(int j=0; j<3; j++){
System.out.print((i+1)+"번 학생의 "+str[j]+" 점수 입력 : ");
score[i][j] = sc.nextInt();
score[i][3] += score[i][j];
}
score[i][4] = score[i][3]/3;
}
System.out.println("\t국어\t수학\t영어\t총점\t평균");
for(int i=0; i<3; i++){
System.out.print((i+1)+"\t");
for(int j=0; j<5; j++){
System.out.print(score[i][j]+"\t");
}
System.out.println();
}
}
}
배열 이용 학생의 점수 구하기.
package mission;
import java.util.Scanner;
public class Mission5 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int sum = 0;
int arr[] = new int[5];
String str[] = { "국어", "수학", "영어", "총점", "평균" };
for (int i = 0; i < 3; i++) {
System.out.print(str[i] + " 입력 : ");
arr[i] = sc.nextInt();
arr[3] += arr[i];
}
arr[4] = arr[3] / 3;
for (int i = 0; i < str.length; i++) {
System.out.print(str[i] + "\t");
}
System.out.println();
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + "\t");
}
}
}
배열을 복사하는법
int oldArr[] = new int[5];
oldArr[0] = 10;
oldArr[1] = 20;
oldArr[2] = 30;
int newArr[] = new int[3];
System.arraycopy(oldArr, 0, newArr, 0, newArr.length);
댓글