본문 바로가기
IT

[Java 개발자가 되기 위한 첫걸음 1] 04 배열

by csongin 2022. 5. 27.
728x90
배열
배열과 반복문
이차원 배열

배열

배열이란?

동일한 자료형의 데이터 여러 개를 저장하는 자료구조

배열이 이름은 한 개

int

0 1 2 3 4 5 6 7 8 9

String

"spring" "summer" "fall" "winter"

double

0.0 1.1 2.2 3.14

boolean

true true false true

배열의 선언, 생성, 사용

int[] data; // 배열의 선언

배열 선언 시에는 배열의 길이가 아직 정해지지 않았으므로 표시하면 안 됨

int[] data;
data = new int[3]; // 배열의 생성

배열을 생성하게 되면 배열 안에 저장되는 자료 값에 따라 초기값(default value)이 들어있다.

// 배열이 사용
int[] data;
data = new int[3]; 
data[0] = 123;

배열의 인덱스는 0부터 시작한다.

 

배열의 초기값

배열 안 자료형 초기값
정수형 0
실수형 0.0
논리형 false
문자열 null
int[] numData = new int[1];
System.out.println(numData[0]); 
// 출력 값 0

double[] dNumData = new double[1];
System.out.println(dNumData[0]); 
// 출력 값 0.0

boolean[] boolData = new boolean[1];
System.out.println(boolData[0]); 
// 출력 값 false

String[] strData = new String[1];
System.out.println(strData[0]); 
// 출력 값 null

배열의 길이

배열 안에 저장할 수 있는 데이터 개수

// 배열이름.length;
int[] scores = new int[3];
scores[0] = 1;
scores[1] = 2;
scores[2] = 3;

System.out.println(scores.length);
// 3

배열의 길이와 index

int[] scores = new int[170];

// scores의 마지막 index == scores.length-1

다른 방법으로 배열 사용하기

배열의 선언, 생성, 초기화를 한 번에 사용하기

int[] scores = {1,2,3,4,5};
double[] nums = {1.0, 2.0, 3.0};
boolean[] flags = {true, false, true};
char[] sings = {'a','b','c'};

배열과 반복문

배열 안의 데이터 처리

int[] data = new int[500];

for(int i = 0; i < data.length; i++){
    System.out.println(data[i]);
}

향상된 for 문(for each 문)

int[] data = new int[500];

for(int i : data){
    System.out.println(i);
}

String[] names = {"tomas", "jane", "bill"};

for(int i : names){
    System.out.println(i);
}

이차원 배열

이차원 배열이란?

각 요소가 이차원 배열인 경우

이차원 이상의 배열은 다차원 배열

이차원 배열의 생성

int[][] data = {{1,2,3}, {4,5,6}};
/*
data[0][0] = 1;
data[0][1] = 2;
.
.
.
data[1][2] = 6;
*/

이차원 배열의 구조

data.length == 2
data[0].length == 3

이차원 배열의 사용

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

for(int i = 0; i < data.length; i++){
    for(int j = 0; j < data[i].length; j++){
        System.out.println(data[i][j]);
    }
}
반응형