이 글은 남궁성 님의 Java의 정석 책을 바탕으로 정리한 글입니다.
int[] score = new int[5]; // int형의 기본값인 0으로 초기화
int[] score = new int[] {50, 60, 70, 80, 90};
int[] score = {50, 60, 70, 80, 90};
int[] score;
score = new int[] {50, 60, 70, 80, 90};
// score = {50, 60, 70, 80, 90}; 에러
int add(int[] arr) {/* 내용 생략 */}
int result = add(new int[] {100, 90, 80, 70, 60});
// int result = add({100, 90, 80, 70, 60}); 에러
// 참조변수의 기본값의 null이지만 배열을 가리키는 참조변수는 길이가 0인 배열로 초기화된다
int[] score = new int[]{}; // 길이가 0인 배열
int[] score = {};
· 한 번 생성하고 나면 길이 변경 불가
· 공간이 부족하여 길이를 변경해야 하는 경우에는 더 큰 배열(약 2배)을 새로 생성하여 복사한다
import java.util.*;
int[] iArr = { 100, 95, 80, 70, 60 };
System.out.println(Arrays.toString(iArr)); // [100, 95, 80, 70, 60]
· 배열 요소 출력: Arrays.toString(배열이름)
char[] chArr = { 'a', 'b', 'c', 'd' };
System.out.println(chArr) // abcd
· 배열이름으로 값을 바로 출력 시 참조 변수이기 때문에 '타입@주소' 출력 - char배열만 예외
배열의 복사
1. for문 이용
배열 요소 하나하나에 접근하여 복사
int[] arr = new int[5];
. . .
int[] tmp = new int[arr.lenght * 2]; // 기존 배열보다 길이가 2배인 배열 생성
for(int i=0; i<arr.length; i++)
tmp[i] = arr[i];
arr = tmp; // 참조 변수 arr이 새로운 변수를 가리키게 한다.
2. System.arraycopy()
지정된 범위의 값을 한 번에 복사
// num[0]에서 newNum[0]으로 num.length개의 데이터 복사
System.arraycopy(num, 0, newNum, 0, num.length);
String 배열
참조형 변수의 기본값은 null이므로 각 요소의 값은 null로 초기화된다
자료형 | 기본값 |
boolean | false |
char | '\u0000' |
byte, short, int | 0 |
long | 0L |
float | 0.0f |
double | 0.0d 또는 0.0 |
참조형 변수 | null |
String[] name = new String[3];
name[0] = new String("Jang"); // String은 클래스이므로 new연산자를 통해 객체 생성
name[1] = "Park"; // 허용
주요 메서드
String 클래스 = char 배열 + 기능(메서드)
char배열과 String클래스의 중요한 차이:
String객체(문자열)은 읽을 수만 있고 내용 변경 불가
→ 변경 가능한 문자열을 다루려면 StringBuffer클래스 사용
char charAt(int index) | 문자열에서 해당 위치(index)에 있는 문자 반환 |
int length() | 문자열 길이 반환 |
String substring(int from, int to) | 문자열에서 해당 범위(from~to)에 있는 문자열 반환 (to는 범위에 포함되지 않는다) |
boolean equals(Object obj) | 문자열의 내용이 obj와 같은지 확인 같으면 true, 다르면 false |
char[] toCharArray() | 문자열을 문자 배열(char[])로 변환해서 반환 println()으로 문자 배열을 출력하면 한 줄로 출력 (문자열처럼 보인다) |
다차원 배열
int[][] score = {
{100, 100, 100}
, {20, 20, 20}
, {30, 30, 30}
};
가변 배열
마지막 차수의 길이를 지정하지 않으면 행마다 다른 길이의 배열을 생성할 수 있다
int[][] score = new int[5][];
score[0] = new int[4];
score[1] = new int[3];
score[2] = new int[2];
score[3] = new int[2];
score[4] = new int[3];
'Back-End > Java' 카테고리의 다른 글
객체지향 프로그래밍 Ⅱ (0) | 2021.12.16 |
---|---|
객체지향 프로그래밍 Ⅰ (0) | 2021.12.02 |
연산자(Operator) (0) | 2021.11.16 |
변수(variable) (0) | 2021.11.15 |
Java란? (0) | 2021.11.15 |
댓글