본문 바로가기
Java/Java_basic

Step6. 배열

by Mr.DonyStark 2023. 9. 20.

□ 배열

○ 인덱스를 이용해서 자료형이 같은 데이터를 관리하는 것

  ex)사용예 : 아파트호수 관리, 회사사번 관리, 학급학생 관리 등
 Java에서 배열크기를 선언하면 수정이 불가함.
 배열을 구성하는 데이터의 자료형에 따라서 배열의 메모리 크기가 결정됨


 기본 자료형 데이터를 담고있는 변수와 달리 배열 변수는 배열 데이터의 주소를 담고 있음



package person_test;

import java.util.Scanner;

public class Arrangement {
	public static void main(String[] args) {
	
	//배열 선언 후 초기화
		int[] arr1 = new int[5];   //배열을 의미하는 기호 [] & new를 활용하여 배열 크기(길이)지정 및 선언
		arr1[0] =  100; 
		arr1[1] =  200;
		arr1[2] =  300;
		arr1[3] =  400;
		arr1[4] =  500;
		System.out.println("배열 arr1[0] = " +arr1[0]);
		System.out.println("배열 arr1[1] = " +arr1[1]);
		System.out.println("배열 arr1[2] = " +arr1[2]);
		System.out.println("배열 arr1[3] = " +arr1[3]);
		System.out.println("배열 arr1[4] = " +arr1[4]);
		
		//배열 선언과 초기화 동시진행
		int[] arr2 = {10, 20, 30, 40, 50};
		System.out.println("배열 arr2[0] = " +arr2[0]);
		System.out.println("배열 arr2[1] = " +arr2[1]);
		System.out.println("배열 arr2[2] = " +arr2[2]);
		System.out.println("배열 arr2[3] = " +arr2[3]);
		System.out.println("배열 arr2[4] = " +arr2[4]);
		
		//예제 : 배열을 활용한 학사관리
		String[] name = {"홍길동", "이순신", "안중근", "을지문덕", "광개토대왕"};
		int[] score = new int[5];
		Scanner scanner = new Scanner(System.in);	
		
		System.out.printf("%s 점수 입력 : ", name[0]);
		score[0] = scanner.nextInt();
		System.out.printf("%s 점수 입력 : ", name[1]);
		score[1] = scanner.nextInt();
		System.out.printf("%s 점수 입력 : ", name[2]);
		score[2] = scanner.nextInt();
		System.out.printf("%s 점수 입력 : ", name[3]);
		score[3] = scanner.nextInt();
		System.out.printf("%s 점수 입력 : ", name[4]);
		score[4] = scanner.nextInt();
		
		System.out.printf("%s 점수 입력 : \t%.2f\n",  name[0], (double)score[0]);  //입력점수 형변환(int → double)
		System.out.printf("%s 점수 입력 : \t%.2f\n",  name[1], (double)score[1]);  //입력점수 형변환(int → double)
		System.out.printf("%s 점수 입력 : \t%.2f\n",  name[2], (double)score[2]);  //입력점수 형변환(int → double)
		System.out.printf("%s 점수 입력 : \t%.2f\n",  name[3], (double)score[3]);  //입력점수 형변환(int → double)
		System.out.printf("%s 점수 입력 : \t%.2f\n",  name[4], (double)score[4]); //입력점수 형변환(int → double)
		
		double avg = (double)(score[0]+score[1]+score[2]+score[3]+score[4])/5; //평점
		System.out.printf("학사 평균점수 : \t%.2f", avg);
		
	}
}
import java.util.Arrays;

public class Arrangement_detail {
	public static void main(String[] args) {
		int[] arr1 = {10,20,30,40,50,60}; //배열선언 및 초기화
		int[] arr2 = null; //배열선언
		int[] arr3 = null; //배열선언
		
		//길이 : 변수.length
		System.out.println(arr1.length);
		
		//요소 출력 : Arrays.toString(변수))
		System.out.println(Arrays.toString(arr1));
		
		//복사 : 복사할 변수 = Arrays.Copyof(변수명, 변수길이)
		System.out.println("arr2 복사전 : " +Arrays.toString(arr2));
		arr2 = Arrays.copyOf(arr1, arr1.length);
		System.out.println("arr2 복사후 : " + Arrays.toString(arr2));

		//배열주소 & 해당 출력값은 주소를 의미하며 주소에 해당하는 메모리에 배열요소가 저장됨
		System.out.println(arr1);
		System.out.println(arr2);
		System.out.println(arr3);
		
		//다차원 배열(2차원 배열) : int[행수][열수]
		int[][] arrNull = new int[3][2];
		arrNull[0][0] =  10; //1행1열값
		arrNull[0][1] =  20; //1행2열값
		arrNull[1][0] =  30; //2행1열값
		arrNull[1][1] =  40; //2행2열값
		arrNull[2][0] =  50; //3행1열값
		arrNull[2][1] =  60; //3행2열값
		
		System.out.println("배열 1행출력 : " + Arrays.toString(arrNull[0]));
		System.out.println("배열 2행출력 : " + Arrays.toString(arrNull[1]));
		System.out.println("배열 3행출력 : " + Arrays.toString(arrNull[2]));
	}
}

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

Step8. 반복문  (0) 2023.09.21
Step7. 조건문  (0) 2023.09.21
Step5. 연산  (0) 2023.09.20
Step4. 자료형(+기타: 서식/특수문자)  (0) 2023.09.19
Step3. 변수선언 및 초기화  (0) 2023.09.19