본문 바로가기
공부일기/JAVA

JAVA 공부일기1-5

by 고다나 2023. 4. 18.
Java의 정석 기초편
Chapter 5 배열

 

 

1. 배열이란?

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

 

2. 배열의 선언과 생성

배열 선언 방법: 타입[] 변수이름; int[] score;  타입 변수이름[];  int score[];

 

배열을 선언하는 것은 단지 생성된 배열을 다루기 위한 참조변수를 위한 공간이 만들어지는 것. 배열을 생성해야만 값을 저장할 수 있는 공간이 만들어짐.

타입[] 변수이름; // 배열 선언(배열을 다루기 위한 참조변수 선언) ex) int[] score;

변수이름 = new 타입[길이]; //배열 생성(실제 저장공간을 생성) ex) score = new int[5];

  ↓ 

타입[] 변수이름 = new 타입[길이]; ex) int[] score = new int[5];

 

3. 배열의 인덱스와 길이

배열의 인덱스: 인덱스는 배열의 요소마다 붙여진 일련번호. 0부터 시작.

배열의 길이: 자바에서는 JVM이 모든 배열의 길이를 별도로 관리. 배열은 한번 생성하면 길이 변경x. 배열이름.length.

 

4. 배열의 초기화

배열의 생성과 동시에 자동으로 기본값으로 초기화. 원하는 값을 저장하려면 각 요소마다 값 지정.

ex) int[] score = new int[3];

score[0] = 50;

score[1] = 60;

score[2] = 70;

 

배열의 생성과 초기화 동시에 o. {} 안의 값의 개수에 의해 배열의 길이가 자동 결정되므로 [] 안의 배열의 길이는 적지x

ex) int[] score = new int[]{50, 60, 70};

 

new 타입[] 생략 가능. 단 배열의 선언과 생성을 따로 하는 경우는 생략 불가.

ex) int[] score = {50, 60, 70};

 

* 변수의 타입에 따른 기본값

자바의 정석 기초편1 p.141

 

5. 배열의 출력

for문을 이용해 출력 또는 'Arrays.toString(배열이름)' 메서드 사용해 출력.

 

6. String 클래스

String클래스는 char 배열에 여러 가지 기능을 추가하여 확장한 것.

char 배열과 String클래스의 차이: String객체는 읽을 수만 있을 뿐 내용 변경 불가.

ex) String str = "JAVA";

str = str + "8'; // "JAVA8"이라는 새로운 문자열이 str에 저장. 

System.out.println(str); // "JAVA8"

문자열 str의 내용이 변경되는 것 같지만, 문자열은 변경할 수 없으므로 새로운 내용의 문자열이 생성된 것.

 

7. 2차원 배열의 선언

2차원배열 선언 방법: 타입[][] 변수이름; int[][] score; 타입 변수이름[][]; int score[][]; 타입[] 변수이름[]; int[] score[];

3차원 이상의 고차원 배열 선언은 대괄호[]의 개수를 차원의 수만큼 추가해주면 됨.

 

8. 2차원 배열의 초기화

2차원 배열도 생성과 초기화 동시 가능. 단 {}를 한번 더 써서 행별로 구분.

ex) int[][] arr = new int[][]{ {1, 2, 3}, {4, 5, 6} };

int[][] arr = { {1, 2, 3}, {4, 5, 6} };

 

9. Arrays로 배열 다루기

문자열 출력: toString() - 1차원, deepToString() - 2차원↑

두 배열에 저장된 모든 요소 비교해서 true, false 반환: equals() - 1차원, deepEqauls() - 2차원↑

배열 복사: copyOf() - 배열 전체, copyOfRange() - 배열 일부 복사해 새로운 배열 반환.

배열 정렬: sort()

'공부일기 > JAVA' 카테고리의 다른 글

JAVA 공부일기1-7  (0) 2023.04.22
JAVA 공부일기1-6  (0) 2023.04.19
JAVA 공부일기1-4  (0) 2023.04.16
JAVA 공부일기1-3  (0) 2023.04.16
JAVA 공부일기1-2  (0) 2023.04.12

댓글