본문 바로가기

프로그래밍/Java

4. 배열



4. 배열

 배열 : 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것

         한번 선언되면 길이를 변경할 수 없다

배열의 선언과 생성

 1. 선언 : int [] score; - int형 배열 참조변수 score 선언, 데이터를 저장할 수 있는 공간은 아직 없는상태.

         score

  


 2. 생성 : score = new int[5];      

 1) 연산자 'new'에 의해서 메모리의 빈 공간에 5개의  int형 데이터를 저장할 수 있는 공간이 생긴다.

 2) 배열의 요소는 자동으로 int의 기본값인 0으로 초기화한다. 

 3) 대입 연산자 '=' 에 의해 배열의 주소가 참조변수 score에 저장한다.

     → 선언+생성 : int[] score = new int[5];

배열의 길이와 인덱스

 배열의 각 저장공간을 '배열의 요소' 라고하며 '배열이름[인덱스]'의 형식으로 배열의 요소에 접근이 가능하다.

 인덱스(index) : 배열의 요소마다 붙여진 일련번호.   요소를 구별하는데 사용

 배열의 길이(length) : 배열의 요소의 개수,  값을 저장할 수 있는 공간의 개수 , 배열이름.length로 사용한다.


배열의 길이 변경하기

배열은 선언 후 길이를 변경할 수 없기 때문에 배열에 저장할 공간이 부족한 경우에는 

 더 큰 길이의 새로운 배열을 생성한 후 , 기존의 배열에 저장된 값들을 새로운 배열에 복사하면 된다.


배열의 초기화

 배열의 초기화 : 생성된 배열에 처음으로 값을 저장하는 것

 1. int [] score = new int[]50,60,70,80,90};

 2. int [] score = {50,60,70,80,90};         //new int[] 생략가능                    

※주의사항

 1. int [] score;

    score = new int[]{50,60,70,80,90}; // OK

    score = {50,60,70,80,90}; // 에러. new int[]를 생략할 수 없음

    → 배열의 선언과 생성을 따로 하는 경우에는 생략 할 수 없다. 

2. int add(int [] arr){} //add메서드

   int result = add(new int[]{100,90,80,70,60}); //OK

   int result = add({100,90,80,70,60}); //에러. new int[]를 생략할 수 없음.

   → 매개변수로 int배열을 받는 메서드를 호출해야 할 경우 'new 타입[]'을 생략할 수 없다.

배열의 복사

1. 194p예제(나중에올리기) 방법

2. arraycopy() 메소드 사용

   System.arraycopy(num, 0, newNum, 0, num.length);

   → num[0]에서 newNum[0] 으로 num.length개의 데이터를 복사


배열의 활용 ( p.196 ~) 예제 해보기

1.총합과 평균

2. 최대값과 최소값

3. 섞기 (shuffle)

4. 임의의 값으로 배열 채우기

5. 정렬(sort)

6. 빈도수 구하기


String배열

 String배열 : 배열의 타입이 String인 경우 , 앞의 int배열의 선언과 생성방법은 다르지 않다.

 생성 및 선언 : String[] name = new String[3];

String배열 초기화

 String[] name = {"Kim", "Park", "Yi"};

 앞에 int형 배열과 다르게 배열에 실제 객체가아닌 '객체의 주소'가 저장되어 있는 것을 알 수 있다.

 기본형 배열이 아닌 경우, 즉, 참조형 배열의 경우 배열에 저장되는 것은 객체의 주소이다.

 참조형 배열을 객체 배열이라고 하며, 객체지향개념에서 자세히 배울것이다.

String클래스의 주요 메서드

 char charAt(int index) - 문자열에서 해당 인덱스의 있는 문자를 반환한다.

 int length - 문자열의 길이를 반환한다.

 String substring(int from, int to) - 문자열에서 해당 범위에 있는 문자열을 반환한다. (to는 범위에 포함되지않음)

 boolean equals(String str) - 문자열의 내용이 같은지 확인한다. 같으면 true , 틀리면 false

 char[]toCharArray() - 문자열을 문자배열로 변환해서 반환한다.


댜차원 배열

 앞에서 배운 배열은 1차원 배열인데, 2차원 이상의 배열, 즉 다차원 배열도 선언해서 사용할 수 있다.

2차원 배열의 선언과 인덱스

 int [][] score = new int [4][3];   // 4행 3열의 2차원배열을 생성한다. new int[행][열] 이다.

2차원 배열의 초기화 - 행별로 줄 바꿈을 해주는 것이 좋다.

 int[][] arr = {

 {100, 100, 100}

, {20, 20, 20}

, {30, 30, 30}

, {40, 40, 40}

, {50, 50, 50}

};

                                                                                                                                  

다차원 배열의 활용 p)220

 1.좌표에 X표하기

 2.빙고

 3.행렬의 곱셈

 4.단어맞추기




'프로그래밍 > Java' 카테고리의 다른 글

6.객체지향개념2  (0) 2018.05.06
5. 객체지향개념  (0) 2018.05.01
3. 조건문과 반복문  (0) 2018.05.01
2. 연산자 (Operator)  (0) 2018.05.01
1. 변수  (0) 2018.05.01