1. 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것을 배열(array)이라고 한다.
타입[] 변수이름 = new 타입[길이] ; // 배열의 선언과 생성을 동시에.
int[] score = new int[5]; // 길이가 5인 int배열
- 배열의 길이, 초기화, 출력
int[] arr = new int[5]; // 길이가 5인 int배열
int tmp = arr.length; // arr.length의 값은 5이고 tmp에 5가 저장된다.
int[] score = new int[] {50,60, 70, 80, 90}; // 배열 초기화
for (int i=0; i < score.length; i++) // 배열 출력
System.out.println(score[i]);
2. String배열의 선언과 생성
String[] name = new String[3]; // 길이가 3인 String배열을 생성
name[0] = "Kim";
name[l] = "Park";
name[2] = "Yi";
String[] name = new String[] { "Kim", "Park", "Yi" }; //한 줄로 간단히 생성할 수 있다.
String[] name = { "Kim", "Park", "Yi" }; // new String[ ]을 생략할 수 있음
3. String클래스는 char배열에 기능(메서드)을 추가한 것이다.
메서드 | 설명 |
char charAt(int index) | 문자열에서 해당 위치 (index) 에 있는 문자를 반환한다 |
int length() | 문자열의 길이를 반환한다 |
String substring(int from, int to) | 문자열에서 해당 범위(frorrr니o)의 문자열을 반환한다. (to는 포함 안 됨) |
boolean equals(Object obj) | 문자열의 내용이 같은지 확인한다. 같으면 결과는 true. 다르면 false |
char[] toCharArray() | 문자열을 문자배열 (char[])로 변환해서 반환한다 |
4. 2차원 배열
class Ex {
public static void main(String[] args) {
score = {
{100, 100, 100},
{20, 20, 20},
{30, 30, 30},
{40, 40, 40},
};
int sum = 0;
for (int i = 0; i < score.length; i++) {
for (int j = 0; j < score[i] .length; j++) {
System.out.printf("score[%d][Xd] =%d%n", i, j, score[i][j]);
// 각 요소의 값 출력
sum += score[i][j];
}
}
System.out.println("sum=" + sum); //모든 요소의 합
}
}
5. 배열 다루기 - toString, equals, copyOf, sort
toString()배열의 모든 요소를 문자열로 편하게 출력할 수 있다. 다차원 배열에는 deepToString()을 사용해야 한다.
equals()는 두 배열에 저장된 모든 요소를 비교해서 같으면 true, 다르면 false를 반환한다.
다차원 배열의 비교에는 deepEquals()를 사용해야 한다.
copyOf()는 배열 전체를 copyOfRange()는 배열의 일부를 복사해서 새로운 배열을 만들어 반환한다.
sort()는 배열을 정렬할 때 사용한다.
int[] arr = {0,1,2,3,4}; // 배열 생성
int[][] arr2D = {{11,12}, {21,22}}; // 2차원 배열 생성
System.out.println(Arrays.toString(arr)); // [0, 1, 2, 3, 4] 배열 출력
System.out.println(Arrays.deepToString(arr2D)); // [[11, 12], [21, 22]] 2차원 배열 출력
String[][] str2D = new String[][]{{"aaa", "bbb"}, {"AAA", "BBB"}};
String[][] str2D2 = new String[][]{{"aaa", "bbb"}, {"AAA", "BBB"}};
System.out.println(Arrays.equals(str2D, str2D2)); //배열이 똑같지만 false가 나온다.
System.out.printin(Arrays.deepEquals(str2D, str2D2)); // true - 2차원 배열 비교시 deepEqueals()
int[] arr = {0, 1, 2, 3, 4};
int[] arr2 = Arrays.copyOf(arr, arr.length); // arr2 = [0, 1, 2, 3, 4]
int[] arr3 = Arrays.copyOf(arr, 3); // arr3 = [0, 1, 2]
int[] arr4 = Arrays.copyOf(arr, 7); // arr4 = [0, 1, 2, 3, 4, 0, 0]
int[] arr5 = Arrays.copyOfRange(arr, 2, 4); // arr5 = [2, 3]
int[] arr6 = Arrays.copyOfRange(arr, 0, 7); // arr6 = [0, 1, 2, 3, 4, 0, 0]
int[] arr = {3, 2, 0, 1, 4};
Arrays. sort (arr); // 배열 arr을 정럴
System. out. printin (Arrays. toString(arr)); // [0, 1, 1、3, 4] 출력
'자바' 카테고리의 다른 글
자바 정리 - (3) 연산자 (0) | 2023.01.17 |
---|---|
자바 정리하기 - (1) 변수 (0) | 2023.01.10 |
댓글