2021.05.23 - [Study/Java Study] - 자바스터디 2주차 (2)
배열(array)
1.1 배열이란?
같은 타입의 여러 변수를 하나의 묶음으로 다루는 것이다. 여기서 중요한 것은 같은 타입이어야 한다는 것인데, 서로 다른 타입의 변수들로 구성된 배열은 만들 수 없다.
예를들어 시험점수를 저장하고자 할 때, 학생 5명의 점수를 저장하기 위해서 5개의 변수를 선언해야한다.
int score1, score2, score3, score4, score5;
하지만 배열을 쓰면 간단하게 처리할 수 있다.
int[] score = new int[5]; //5개의 int값을 저장할 수 있는 배열 생성
1.2 배열의 선언과 생성
선언방법 | 선언 예 |
타입[] 변수이름; | int[] score; String[] name; |
타입 변수이름[]; | int score[]; String name[]; |
배열을 선언하는 것은 단지 생성된 배열을 다루기 위한 참조변수를 위한 공간이 만들어질 뿐이고, 배열을 생성해야 값을 저장할 수 있는 공간이 만들어 진다.
타입[] 변수이름; // 배열을 선언(배열을 다루기 위한 참조변수 선언)
변수이름 = new 타입[길이]; // 배열을 생성(실제 저장공간을 생성)
1.3 배열의 길이와 인덱스
생성된 배열의 각 저장공간을 '배열의 요소'라고 하며, '배열이름[인덱스]'의 형식으로 배열의 요소에 접근한다. 인덱스는 배열의 요소마다 붙여진 일련번호이고, 범위는 0부터 '배열길이 -1까지'이다.
배열의 길이는 값을 저장할 수 있는 공간의 개수다. 배열의 길이는 0일수도 있다.
자바에서는 JVM이 모든 배열의 길이를 별도로 관리하며, '배열이름.length'를 통해서 배열의 길이에 대한 정보를 얻을 수 있다.
2. String배열
2.1 String배열의 선언과 생성
String타입의 배열도 int배열의 선언과 생성방법은 다르지않다.
String[] name = new String[3]; // 3개의 문자열을 담을 수 있는 배열을 생성
변수의 타입에 따른 기본값 | |
자료형 | 기본값 |
boolean | false |
char | '\u0000' |
byte,short,int | 0 |
long | 0L |
float | 0.0f |
double | 0.0d 또는 0.0 |
참조형 변수 | null |
2.2 String배열의 초기화
String[] name = new String[3]; // 길이가 3인 String배열을 생성
name[0] = "Kim";
name[1] = "Park";
name[2] = "Yi";
String[] name = new String[]{"Kim", "Park", "Yi"};
String[] name = {"Kim", "Park", "Yi"}; // new String[]을 생략할 수 있음
참조형 배열의 경우 배열에 저장되는 것은 객체의 주소이다.
※ String클래스는 char배열에 기능(메서드)을 추가한 것이다.
※ String객체(문자열)는 읽을수만 있을 뿐 내용을 변경할 수 없다.
3. 다차원배열
3.1 2차원 배열의 선언과 인덱스
선언 방법 | 선언 예 |
타입[][] 변수이름; | int[][] score; |
타입 변수이름[][]; | int score[][]; |
타입[] 변수이름[]; | int[] score[]; |
2차원 배열은 주로 테이블 형태의 데이터를 담는데 사용되며, 만일 4행 3열의 데이터를 담기 위한 배열을 생성하려면 다음과 같이한다.
3열(column) | |||
4행(row) | int | int | int |
int | int | int | |
int | int | int | |
int | int | int |
https://hong-chii.tistory.com/191?category=1150868
자바의 정석을 토대로 공부 후 정리한 내용입니다.
'Study > Java Study' 카테고리의 다른 글
자바스터디 3주차 (3) [빙고 게임 구현 - 2차원 배열 이용] (0) | 2021.05.30 |
---|---|
자바스터디 3주차 (2) (0) | 2021.05.26 |
자바스터디 2주차 (2) (0) | 2021.05.23 |
자바스터디 2주차 (1) (0) | 2021.05.19 |
자바스터디 1주차 (3) (0) | 2021.05.16 |
댓글