본문 바로가기

코딩공부일지/자바독학

[자바혼공]복습 배열

  • 자료출처

생활코딩 by egoing - 자바: https://opentutorials.org/module/516

남궁석의 자바의정석: https://github.com/castello/javajungsuk_basic/


[        배열        ]

1. 배열

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

int score1, score2, score3, score4, score5;
=====>
int [] score = new int[5];

1) 배열의 선언과 생성

* 선언 

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

* 생성
변수이름 =  new 타입[길이];
score = new int [5] ;  // int 타입의 값 5개를 저장할 수 있는 배열 생성

*선언 및 생성
int score = new int[5]; 

2) 배열의 인덱스

-배열의 인덱스: 배열의 요소마다 붙여진 일련번호로 각 요소를 구분하는데 사용

-1이 아닌 0부터 시작

-인덱스의 범위는 0부터 "배열길이-1"까지

-변수와 마찬가지로 값 저장, 읽어오기 가능

int[] score = new int [5];
===> 인덱스: score[0], score[1], score[2], score[3], score[4], score[5] 

score [3] = 100;

3) 배열의 길이

- 배열이름.length

int[] arr = new int [5];

System.out.println(arr.length);===>5

4) 배열의 초기화: 배열은 생성과 동시에 기본값으로 초기화됨

[1단계]
int[] arr = new int [5];

score[0]=1; 
score[1]=2;
score[2]=3;
score[3]=4;
score[4]=5;


[2단계] 배열의 생성과 초기화 동시에
int[ ] arr = new int[ ]{1, 2, 3, 4, 5}
===> 블럭 안 갯수에 의해 배열의 길이가 자동으로 정해짐, 길이 안적어도 됨!

[3단계] 배열의 생성과 초기화 동시에 하는 경우 -> new int[]생략가능
int[ ] arr = new int[ ]{1, 2, 3, 4, 5}

==> but, 배열의 생성과 초기화 따로하는 경우 new int[ ] 생략불가함

[4단계] for문 이용
for (int i=0; i<score.length; i++) {
     score[i]=i-1;
}

5) 배열의 출력(배열에 저장된 값 확인) 

    (1)for문 사용

int[] tired = new int[5] {10, 20, 30, 40, 50};
 
for (int i=0; i < tired.length; i++) {
   System.out.println(int[i]);
}

===> 배열을 한 줄에 출력하고 싶다면:
for (int i=0; i < tired.length; i++) {
   System.out.print(int[i]);
}
System.out.println();

    (2)메서드 Arrays.toString(배열이름)

       - 배열의 모든 요소를 [첫번째이름, 두번째이름...] 형식의 문자열로 만들어 반환

int[] tired =  {10, 20, 30, 40, 50};
System.out.println(Arrays.toString(tired));
=====> [10, 20, 30, 40, 50]

2. String 배열 (문자열 처리)

1) String배열의 선언 및 생성 (int배열과 동일)

- 배열의 타입이 String(문자열)인 경우, 기본값은 null

*ex
String[] cheese = new String[3]; // 3개의 문자열을 담을 수 있는 배열 생성

* 참고 *
변수 타입에 따른 기본값
boolean: false
char: 'u\0000'
byte, short, int: 0
long: 0L
float: 0.0f
double: 0.0d 
참조형: null

2) String배열의 초기화 (int 배열과 동일)

(1)
String[] tired = new String[3];
tired[0] = "Corin";
tired[1] = "study";
tired[2] = "java";

(2) 
String[] tired = newString[] { "Corin", "study", "java" }

3) String 클래스

- 자바에서 char클래스가 아닌 String클래스를 이용하여 문자열을 처리하는 이유?

 => String클래스가 char배열 + a 기능(메서드) 한 것이기 때문

 


3. 2차원 배열 

1) 2차원배열의 선언:

- 1차원 배열의 선언 + []

- 타입 변수이름 [행 개수] [열 개수]

int [ ] [ ] tired = new int [3 ] [4 ];
====>3행 4열의 2차원 배열 생성

2) 2차원 배열의 인덱스

int [ ] [ ] tired = new int [3 ] [4 ];  

==>

tired [0][0] tired [0][1] tired [0][2] tired [0][3]
tired [1][0] tired [1][1] tired [1][2] tired [1][3]
tired [2][0] tired [2][1] tired [2][2] tired [2][3]

 

3) 2차원 배열의 초기화

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

// 행을 바꿔서 표기하는게 보기 좋음
int [] [] tired = new int [] [] {
                                             {1, 2, 3},
                                             {4, 5, 6}
                                           } ;