728x90
배열
같은 타입의 여러 변수를 하나의 묶음으로 다루는 것
- 배열의 선언 : 배열을 다루기 위한 참조변수의 선언
타입[] 변수이름; ex) int[] age; - 배열의 생성 : 실제 저장공간을 생성
타입[] 변수이름 = new 타입[길이]; ex) age = new int[5];
배열의 시작 주소(메모리 주소)가 참조변수(age) 에 저장됨 - 배열의 초기화 : 배열의 각 요소에 처음으로 값을 저장하는 것 (배열은 기본값으로 자동 초기화)
타입[] 변수이름 = new int[] { } ex) int[] num = new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9}; new int[] 생략가능
기본값
자료형(변수타입)
|
기본값
|
byte
|
0
|
short
|
0
|
int
|
0
|
long
|
0L
|
float
|
0.0f
|
double
|
0.0d
|
char
|
'\n0000'
|
boolean
|
false
|
참조형 변수(String or any Object)
|
null
|
배열의 한계점
배열을 생성하면 연속적인 공간을 찾아서 주소를 배정
뒤에 연속적인 메모리 공간이 존재한다는 보장이 없으므로 배열의 크기를 바꿀 수 없음
- 배열의 크기가 부족할 때의 방법
필요한 만큼의 크기의 배열을 새롭게 만들어 기존 배열의 값을 복사해서 저장
배열의 출력
배열 출력 : toString()
int[] arr = {100, 90, 80, 70, 60, 50, 40, 30, 20, 10};
// 배열을 가리키는 참조 변수 arr 을 출력
System.out.println(arr);
// 메모리 주소와 비슷한 문자열이 출력 (실제 주소는 아님)
// [I@7a81197d -> [(배열을 뜻함), I(int 타입을 뜻함), @(위치를 뜻함)
// Arrays.toString(배열) : 배열의 모든 요소를 문자열로 만들어서 반환한다.
System.out.println(Arrays.toString(arr)); // [100, 90, 80, 70, 60, 50, 40, 30, 20, 10]
// 예외 확인 하기 - char[]
char[] chArr = {'a', 'b', 'c', 'd'};
System.out.println(chArr); // abcd 가 출력되는데 이는 println 메서드의 기능 때문!
String 클래스
char[] 와 메서드(기능)를 결합한 것
- 기본형 처럼 사용이 가능한 참조형임
- String str = "행복";
- String str = new String("행복");
-
문자열을 많이 사용하기 때문에 특별하게 만들어진 클래스
- String 클래스는 내용을 변경할 수 없음 (새로운게 만들어짐)
- String name = "choi";
- String firstName = "wb";
- name = name + firstName;
String 클래스 주요 메서드
메서드
|
설명
|
char charAt(int index)
|
문자열에서 해당 위치(index)에 있는 문자를 반환한다.
|
String toLowerCase()
|
문자열을 소문자로 반환한다.
|
String toUpperCase()
|
문자열을 대문자로 반환한다.
|
int length()
|
문자열의 길이를 반환한다.
|
String substring(int from, int to)
|
문자열에서 해당 범위(from~to)의 문자열을 반환한다.(to는 포함 안됨)
|
boolean equals(Object obj)
|
문자열의 내용이 같은지 확인한다. 같으면 true, 다르면 false
|
char[] toCharArray()
|
문자열을 문자배열(char[])로 변환해서 반환한다
|
배열의 출력
1차원 출력 : toString
int[] num = {0, 1, 2};
System.out.println("Arrays.toString(num) = " + Arrays.toString(num)); // [0, 1, 2]
다차원 출력 : deepToString
int[][] score = {{88, 35, 100}, {84, 60, 55}, {100, 99, 72}, {33, 54, 77}};
System.out.println("Arrays.deepToString(score) = " + Arrays.deepToString(score));
// [[88, 35, 100], [84, 60, 55], [100, 99, 72], [33, 54, 77]]
이차 배열의 향상된 for 문 : 배열 선언 및 초기화 후 ' iter '로 자동완성
int[][] score = {{88, 35, 100},{84, 60, 55},{100, 99, 72},{33, 54, 77}};
for (int[] ints : score) {
for (int it : ints) {
System.out.println("anInt = " + it);
}
}
문자열 비교
1차원 비교 : equals()
String[][] strArr1 = {{"AAA","BBB","CCC"}, {"aaa","bbb","ccc"}};
String[][] strArr2 = {{"AAA","BBB","CCC"}, {"aaa","bbb","ccc"}};
// 1 차원 비교에는 equals
System.out.println(Arrays.equals(strArr1[0], strArr2[0])); // true
System.out.println(Arrays.equals(strArr1[1], strArr2[0])); // false
System.out.println(Arrays.equals(strArr1, strArr2)); // false
다차원 비교 : deepEquals()
String[][] strArr1 = {{"AAA","BBB","CCC"}, {"aaa","bbb","ccc"}};
String[][] strArr2 = {{"AAA","BBB","CCC"}, {"aaa","bbb","ccc"}};
// 다차원 비교에는 deepEquals
System.out.println(Arrays.deepEquals(strArr1, strArr2)); // true
배열 복사
길이만큼 복사 : copyOf()
int[] arr = {0,1,2,3,4};
int[] arr2 = Arrays.copyOf(arr, arr.length); // [0, 1, 2, 3, 4]
int[] arr3 = Arrays.copyOf(arr, 3); // [0, 1, 2]
int[] arr4 = Arrays.copyOf(arr, 7); // [0, 1, 2, 3, 4, 0, 0]
// 범위가 넘어가는 복사는 초기화값이 들어간다.
길이만큼 복사 : copyOfRange( [배열] , a, b) a부터 b까지 복사 (b는 포함 안됨)
int[] arr = {0,1,2,3,4};
// copyOfRange
int[] arr5 = Arrays.copyOfRange(arr, 2, 4); // [2,3]
int[] arr6 = Arrays.copyOfRange(arr, 0, 7); // [0, 1, 2, 3, 4, 0, 0]
// 범위가 넘어가는 복사는 초기화값이 들어간다.
정렬
int, String 동일하다
- 오름차순 : sort()
int[] arr = {3, 1, 8, 5, 9, 2, 10, 7, 6, 4};
Arrays.sort(arr); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Arrays.sort(arr, 0, 4); // [1, 3, 5, 8, 9, 2, 10, 7, 6, 4] 부분 오름차순 정렬 (인덱스 기준 0부터 4까지)
- 내림차순 : Collections.reverseOrder()
int[] arr = {3, 1, 8, 5, 9, 2, 10, 7, 6, 4};
Arrays.sort(arr, Collections.reverseOrder()); // [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
728x90
'개발일기 > Java' 카테고리의 다른 글
JPA 기초 예제 (0) | 2023.02.26 |
---|---|
InteliJ 자동 import방법 (0) | 2023.02.24 |
[Java] 연산자 (0) | 2023.02.16 |
[Java] 변수 (0) | 2023.02.16 |
자바 이해하기 (0) | 2023.02.15 |