배열의 선언과 생성
배열의 선언 방법
int[] score;
String[] name;
int score[];
String name[];
- 두 방법 모두 가능.
배열 선언 후 생성
int[] score; // 참조변수 score을 선언
score = new int[10]; // score이 가리키는 저장공간에 int형 데이터 10개를 저장할 수 있는 배열 생성
배열의 길이
- 배열은 한 번 생성하면 그 길이를 바꿀 수 없다.
- 연속적인 데이터를 저장하기 때문이며, 더 많은 데이터를 저장할 배열이 필요한 경우엔 새로운 배열을 선언해야 한다.
int [] arr = new int[5];
int tmp = arr.length; // tmp에 5가 저장
배열의 초기화
- 배열의 각 요소에 처음으로 값을 저장하는 것으로, 배열의 경우 생성하면 자동으로 초기화가 된다.
int[] score;
score = new int[]{50, 60, 70, 80, 90}
int[] score = new int[]{50, 60, 70, 80, 90}
int[] score = {50, 60, 70, 80, 90}
- 세 방법 모두 사용 가능하다.
- score 참조변수를 이미 선언 한 상태에서는 new int[]의 생략이 불가능하다는 점을 주의.
배열의 출력
// 반복문을 이용한 출력
for(int i=0; i<arr.length; i++)
{
System.out.println(arr[i]);
}
// Array 메소드를 이용한 출력 -> [100, 95, 80, 70] 과 같이 출력해준다.
System.out.println(Arrays.toString(arr));
배열의 활용
커맨드라인을 통해 입력받기
class Ex5_7 {
public static void main(String[] args){
for(int i=0; i<args.length; i++){
System.out.println(args[i]);
}
}
}
- 커맨드라인을 통해 입력을 받으면, 입력(String형)이 args배열로 들어간다.
<커맨드라인 입력>
C:\jdk1.8\work\ch5>java Ex5_7 abc 123 "Hello World"
결과 :
abc
123
Hello World
- 커맨드라인에서 여러 개의 문자열을 입력받을 때, 공백문자를 기준으로 구분된다.
- 자바가 입력된 문자열들을 가지고 문자열 배열을 만들고, 참조변수인 args에 전달한다.
2차원 배열
int [][] score = new int[4][3]; // 4행 3열의 2차원 배열 선언
int [][] score = {
{1,2,3},
{4,5,6}
} // 2차원 배열의 선언과 초기화
- 1차원 배열이 여러 개 모인 것.
String 클래스
- String클래스는 char[] 와 메소드(기능)을 결합한 것이다.
- 문자배열과, 그에 관련된 기능들을 추가해준 것.
* String클래스는 내용을 변경할 수 없다. (read only)
String a = "a";
String b = "b";
a = a + b;
// a가 가리키는 주소의 값이 ab로 바뀌는 것이 아니라, ab를 가리키는 주소로 바뀌게 된다.
* String클래스의 주요 메소드
char charAt (int index) | 문자열의 해당 위치에 있는 문자를 반환한다. |
int length () | 문자열의 길이를 반환한다. |
String substring (int from, int to) | 문자열에서 해당 범위의 문자열을 반환한다. |
boolean equals (Object obj) | 문자열의 내용이 같은지 확인한다. |
char[] toCharArray () | 문자열을 char[] 로 변환해 반환한다. |
Array 클래스
* Array클래스의 주요 메소드
String Arrays.toString (Arr arr) | 1차원 배열을 문자열로 반환한다. |
String Arrays.deepToString (Arr2D arr) | 다차원 배열을 문자열로 반환한다. |
boolean Arrays.equals (Arr arr1, Arr arr2) | 두 1차원 배열의 요소가 같은지 확인한다. |
boolean Arrays.deepEquals (Arr2D arr1, Arr2D arr2) | 두 다차원 배열의 요소가 같은지 확인한다. |
Arr Arrays.copyOf (Arr arr, int to) | 배열의 0번부터 to번 인덱스까지 복제한다. |
Arr Arrays.copyOfRange (Arr arr, int from, int to) | 배열의 주어진 범위까지 복제한다. |
void Arrays.sort (Arr arr) | 배열을 오름차순으로 정렬한다. |
'개발일기 > Java' 카테고리의 다른 글
[Java] Java의 정석 (5) 객체지향개념 2 (0) | 2025.03.04 |
---|---|
[Java] Java의 정석 (4) 객체지향개념 1 (0) | 2025.03.04 |
[Java] Java의 정석 (2) 변수 2 (0) | 2025.02.25 |
[Java] Java의 정석 (2) 변수 1 (0) | 2025.02.21 |
[Java] Java의 정석 (1) 자바를 시작하기 전에 (0) | 2025.02.21 |