자바의 정석-7 배열

자바의 정석-7 배열

배열이란 ?

“배열은 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것”(연속적으로 저장되어있음)

int[ ] score = new int[5];

-> int값 5개를 저장할 수 있는 score이라는 이름의 배열을 새로 만든다! (이름이 아니라 배열의 인덱스로! 0부터~)

-> 참조 변수를 통해서 인덱스에 접근(score[0])

배열의 선언과 생성

배열의 선언: 배열을 다루기 위한 참조변수 언어

선언방법 선언 예 타입 [ ] 변수이름 : (Java 스타일 ) int[ ] score; string[ ] name; 타입 변수이름 [ ]; (C 언어 ) int score[ ]; string name[ ];

배열을 생성: 실제 저장공간을 생성

변수이름 = new 타입[길이];

int[ ] score; // int타입의 배열을 다루기 위한 참조변수 score선언

score = new int[5] // int타입의 값 5개를 저장할 수 있는 배열 생성

배열의 인덱스

배열의 인덱스 -> 각 요소(자동 공간)에 작동으로 붙는 번호(일련번호)

“인덱스(index)의 범위는 0부터 ‘배열길이-1’까지”(0부터 시작하기 때문)"

//int[] score; //1. 배열 score를 선언(참조변수) //score = new int[5]; //2. 배열의 생성(int저장공간 *5) int[] score = new int[5]; // 배열의 선언과 생성을 동시에 score[3] = 100; int value = score[3]; System.out.println("score[3]: " + value); //score[3]: 100

배열의 길이

배열이름.length – 배열의 길이(int형 상수)

“배열은 한 번 생성하면 그 길이를 바꿀 수 없다.”(실행동안)

int[] arr = new int[5]; int tmp = arr.length; System.out.println("arr.length: " + tmp); //arr.length: 5 int[] score = new int[5]; for(int i=0; i

배열의 초기화

배열의 각 요소에 처음으로 값을 저장하는 것

int[] score = new int[] {50,60,70,80,90}; //1번 int[] score1 = {50,60,70,80,90}; //2번 new int[ ]를 생략할 수 있음 // int[] score; // score = {50,60,70,80,90} //에러. new int[]를 생략할 수 없음(두줄 xx)

배열의 출력

-> Arrays 클래스는 배열을 다루는데 필요한 메소드 제공

System .out.println(Arrays.toString(iArr)); -> [100, 95, 80, 70, 60] Array의 내용을 문자열로 반환

int[] iArr = {100, 95, 80, 70, 60}; //배열을 가리키는 참조변수 iArr의 값을 출력한다. System.out.println(iArr); //[I@6504e3b2 출력 char[] chArr = {'A','B','C','D'}; System.out.println(chArr); //ABCD 출력(캐릭터 배열일 때만) for(int i=0;i

배열의 활용(1)

예제1) 배열의 모든 요소를 더해서 총합과 평균 구하기

int sum = 0; //총합을 저장하기 위한 변수 float avg = 0f; //평균을 저장하기 위한 변수 int [] score = {100, 88, 100, 100, 90}; for(int i=0; i

예제2) 배열의 요소 중에서 제일 큰 값과 제일 작은 값 찾기

int [] score = {79, 88, 91, 33, 100, 55, 95}; int max = score[0], min = score[0]; //배열의 첫 번째 값으로 최대값, 최소값 초기화 for(int i=1; i max) { max = score[i]; }else if(score[i] < min) { min = score[i]; } } // end of for System.out.printf("최대값: %d, 최소값 %d", max, min);

예제3) 배열의 요소의 순서를 반복해서 바꾼다.(숫자 섞기, 로또번호 생성)

int[] numArr = {0,1,2,3,4,5,6,7,8,9}; System.out.println(Arrays.toString(numArr)); for(int i=0; i

더보기 -> 배열을 섞는 방법은 임의의 두 요소의 값을 서로 바꾸면 됨! -> 처음부터 중복된 값이 없으면 중복이 안 생김!

임의의 요소를 생성해서 바꾸는 것의 개념

random값이 n에 3이 나왔다고 가정해서 numArr[n] -> numArr[3]

예제4) 1~45까지의 정수가 들어있는 배열 ball을 만든 뒤의 처음부터 6번째 요소까지 난수 생성!

(출력 값)

ball[0]=22

ball[1]=5

ball[2]=24

ball[3]=11

ball[4]=30

ball[5]=13

int[] ball = new int[45]; //45개의 정수값을 저장하기(0~44) // 배열의 각 요소에 1~45의 값을 저장한다. for(int i=0; i

from http://everysmallstep.tistory.com/66 by ccl(A) rewrite - 2021-12-30 10:01:39