본문 바로가기
JAVA

JAVA_배열(Array) 1

by haheaven 2021. 7. 27.

 

1. 배열 : 자료를 순차적으로 관리하는 구조 / 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것

 

 

 

 

- 배열 선언과 생성 

1. 자료형 [] 배열이름 = new 자료형[];

    ->  배열 선언      ->  배열 생성 

2. 자료형 배열이름[] = new 자료형 [];

 

 

 

 

- 배열 생성과 초기화

1. 자료형[] 배열이름 = new 자료형[] {초기화1, 초기화2, 초기화3};     

    -> 배열 선언       -> 배열 생성      -> 배열초기화

2.자료형[] 배열이름 = {초기화1, 초기화2, 초기화3}; 

 

 

 

 

- 배열의 길이 (배열이름.length)

1.  0번째 요소를 배열의 첫째자리

    인덱스 번호는 0 ~ 배열길이-1

* 길이가 0인 배열도 생성 가능 

* 배열은 한 번 생성하면 길이를 변경할 수 없음 

 

 

 

 

 

- 배열의 길이 변경  

* 기존 배열의 길이를 변경할 수 없기 때문에 길이가 더 큰 배열을 생성해서 복사해야 한다. 

 

복사방법1.  for문과 길이가 더 큰 배열 생성하기 

arr1 의 배열길이를 2배로 하는 tmp 배열 생성  arr1 => { 1, 2}.  ->  tmp = >{ 0, 0, 0, 0}

   -> for문을 이용하여 배열 arr1 요소들을 배열 tmp에 복사   tmp => { 1, 2, 0, 0}

      -> arr1 =tmp;   //   변수 tmp에 저장된 값을 변수 arr1에 저장한다.

          -> arr1과 tmp는 같은 배열을 가리키게 됨. 

 

 

복사방법2. System.arraycopy()

arraycopy()

어느 배열(abc)의 몇번째요소(0)에서 어느 배열로(num) 몇 번째 요소(1)부터 시작해 몇 개의 값 복사(3)

  -> abc의 0번째 요소부터면 'A'부터-> num의 1번째요소는 '1' 부터 3개 원하므로 '1''2''3'에 복사

     -> num => { '0' ,'A', 'B', 'C', '4', '5', '6', '7' }

 

 

 


예제5_5

 

 

 

예제5_6

--> 최대값과 최소값을 socre[0]으로 지정하여 score[1]부터 차례대로 반복하며(for) 비교(if-else) 하며 최대, 최소 찾음

 

 

 

예제5_7

섞기의 포인트 ; 배열의 값을 바꾸기 위해서는 임시공간을 하나 만들어서 보관하고 있어야 함!

 

예제5_8(섞기)

 

예제5_9

 

 

예제5_10

 비교 수에 -1, -1-i가 이해되지 않아 그려서 첨부

또한 자리바꿈이 없으면 break문을 수행하기 때문에 출력이 길어질수도 짧아질수도 있음!

 

 

 

 

예제5_11

- num = { 1 ,3, 4, 5, 3, 7, 7, 4, 4, 1} 라면 

--> counter에 num[0] = 1 --> 1을 counter[1]로 가서 +1 

--->  num[1] = 3 -> 3을 counter[3]로 가서 +1   --> num[2] = 4--> 4를 counter[4]로 가서 +1  .....

 

 

 

 

 

 

 

 

 

 

참고 : 자바의정석(남궁성)

 

 

 

댓글