티스토리 뷰
#배열이란?
배열은 같은 타입의 여러 변수를 하나의 묶음으로 다룬 것이며, 각 저장공간이 연속적으로 배치되어 있다.
#배열의 선언과 생성
배열 선언
원하는 타입의 변수를 선언하고 변수 또는 타입에 배열임을 의미하는 대괄호[]를 붙이면 된다.
타입[] 변수 이름;
타입 변수 이름[];
배열의 생성
배열을 선언한 다음에는 배열을 생성해야한다.
배열을 선언하는 것은 단지 생성된 배열을 다루기 위한 참조변수를 위한 공간이 만들어지는 것으로,
배열을 생성해야만 비로소 값을 저장할 수 있는 공간이 만들어 지는 것이다.
배열을 생성하기 위해서는 연산자 'new'와 함께 배열의 타입과 길이를 지정해 주어야 한다.
타입[] 변수이름; // 배열 선언
변수이름 = new 타입[길이]; // 배열 생성
배열의 선언과 생성을 동시에 하는 방법 (대부분의 경우 이렇게 쓴다고 한다.)
타입[] 변수 이름 = new 타입[길이]
ex) int[] num = new int[5]; // 길이가 5인 int배열
아래 그림은 위의 코드가 실행되어 생성된 배열이다.
변수 num은 저장공간이 아닌 참조 변수 이며, 값을 저장할 수 있는 공간은 num[0]부터 num[4]까지로 모두 5개이다.

#배열의 인덱스
생성된 배열의 각 저장공간을 '배열의 요소'라고 하며, '배열이름[인덱스]'의 형식으로 배열의 요소에 접근한다.
인덱스는 배열의 요소마다 붙여진 일련 번호로 각 요소를 구별하는 데 사용한다
인덱스는 1이 아닌 0부터 시작하며, 인덱스의 범위는 0부터 '배열길의 - 1' 까지다.
ex) num[4] = 100;
// 배열 num의 4번째 요소에 100을 저장한다.
// index : 0~3
#배열의 길이(배열이름.length)
자바에서는 자바 가상 머신(JVM)이 모든 배열의 길이를 별도로 관리하며, '배열 이름. length'를 통해서 배열의 길이에 대한 정보를 얻을 수 있다.
배열은 한번 생성하면 실행하는 동안에는 변경할 수 없기 때문에 상수이다. 즉, 값을 읽을 수 만 있을 뿐 변경할 수 없다.
#배열의 초기화
배열의 초기화란 배열의 각 요소에 처음으로 값을 저장하는 것으로 배열은 생성과 동시에 자동적으로 기본값(0)으로
초기화된다.
배열을 초기화하는 방법
배열을 초기화 하는 방법에는 두 가지가 있다.
첫 번째, 배열의 생성과 초기화를 동시에 하는 방법.
ex) int[] num = new int[] {10, 20, 30, 40, 50};
저장할 값들은 괄호{} 안에 나열하고, 괄호{} 안의 값의 개수에 의해 배열의 길이가 자동으로 결정된다.
따라서 괄호[] 안에 배열의 길이는 공백으로 두어도 된다.
두 번째, 'new 타입[]'을 생략하는 방법. (자주 쓴다.)
이 방법을 쓰기 위해서는 배열의 선언과 생성을 따로 하는 경우에는 생략할 수 없다는 점을 주의해야 한다.
ex) 'new 타입[]' 생략
int[] num = {10, 20, 30, 40, 50}; // 가능
ex) 배열의 선언과 생성을 따로 하는 경우
int [] num;
num = {10, ,20 30, 40, 50} //에러. new int[] 생략 불가.
#배열의 출력
import java.util.Arrays;// Arrays.toString()을 사용하기 위해 추가
public class Ex5_print {
public static void main(String[] args) {
int[] iArr1 = new int[10];
int[] iArr2 = new int[10];
// int[] iArr3 = new int[] {100, 95, 80, 70, 60};
int[] iArr3 = {100, 95, 80, 70, 60}; //'new 타입[]' 생략
char[] chArr = {'a', 'b', 'c', 'd'};
for(int i=0; i < iArr1.length; i++) {
iArr1[i] = i+1; //1~10의 숫자를 순서대로 배열에 넣는다.
}
for(int i=0; i < iArr2.length; i++) {
iArr2[i] = (int)(Math.random()*10) + 1; //1~10의 값을 배열에 저장
}
//배열에 저장된 값을 출력
for(int i=0; i < iArr1.length; i++) {
System.out.print(iArr1[i]+",");
}
System.out.println();
System.out.println(Arrays.toString(iArr2));
System.out.println(Arrays.toString(iArr3));
System.out.println(Arrays.toString(chArr));
System.out.println(iArr3);
System.out.println(chArr);
}
}
위의 코드를 보면 배열을 출력할 때 'Arrays.toString(배열이름)' 메서드를 사용했다.
이 메서드는 모든 요소들을 '[첫 번째 요소, 두 번째 요소,...]'와 같은 형식의 문자열로 만들어서 반환한다.
만약 이 메서드를 쓰지 않고 바로 배열을 출력하면 '타입@주소'형식으로 출력된다.
'개발 공부 > JAVA' 카테고리의 다른 글
| [Java] 2차원 배열의 선언, 인덱스, 초기화 (0) | 2022.01.17 |
|---|---|
| [Java] String배열의 선언과 생성, 초기화, 클래스, 주요 메서드 (0) | 2022.01.12 |
| [Java] break문, continue문 (0) | 2021.12.17 |
| [Java] 반복문 - while문, do-while문 (0) | 2021.12.16 |
| [Java] 제어문 - 반복문(for문) (0) | 2021.12.01 |
- Total
- Today
- Yesterday
- 기본형/참조형 매개변수
- continue문
- return문
- Lv.0
- Java
- 메서드 간의 호출과 참조
- 객체 배열
- 객체지향
- 인스턴스 메서드
- 객체지향 언어
- do-while문
- MySQL
- 2차배열 예제
- string 배열
- JAVA의 정석
- 두 수의 나눗셈
- java의정석 기초
- 매개변수가 있는 생성자
- 프로그래머스
- 클래스와 객체
- 객체의 구성요소
- 호출스택
- 생활코딩
- 코테
- SQL
- 조건문 if
- 기본 생성자
- 자바의 정석
- java의 정석기초
- JAVA 의 정석
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |