<TIL> 12. 배열

YUJIN LEE·2023년 2월 14일
0

개발log

목록 보기
12/149

배열

배열은 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것

배열의 선언과 생성

  • 배열의 선언
    배열을 다루기 위한 참조변수의 선언
    선언 방법: 아래 두 가지 방법 모두 지원
    *
    타입[] 변수이름;
    int[] age;
    타입 변수이름[];
    *** string name[];
        

배열의 생성: 실제 저장공간을 생성

  • 타입[] 변수이름 = new 타입[길이]
    int[] age; : int 타입의 배열을 다루기 위한 참조변수 age 를 선언
    age = new int[5]; : int 타입의 값 5개를 저장할 수 있는 배열을 생성(new)
    배열의 시작 주소(메모리 주소)가 참조변수 age 에 저장되었습니다.
    age 는 저장된 주소를 통해 해당 배열을 가리키고 있습니다.
    즉, 참조변수와 배열이 연결되었고 우리는 참조변수를 이용하여 배열을 다룰 수 있습니다.

class Arrays3_1 {
public static void main(String[] args) {
int[] arr = {100, 90, 80, 70, 60, 50, 40, 30, 20, 10};
// 배열을 가리키는 참조 변수 arr 을 출력
System.out.println("arr = " + arr);
// 메모리 주소와 비슷한 문자열이 출력 -> 실제 주소는 아닙니다.
// [I@7a81197d -> [(배열을 뜻함), I(int 타입을 뜻함), @(위치를 뜻함)

    // 예외 확인 하기 - char[]
    char[] chArr = {'a', 'b', 'c', 'd'};
    System.out.println(chArr); // abcd 가 출력되는데 이는 println 메서드의 기능 때문!

    // 배열의 요소 하나씩 출력하기
    for (int i = 0; i < arr.length; i++) {
        System.out.println("arr[" + i + "] = " + arr[i]);
    }
    
    // Arrays.toString(배열) : 배열의 모든 요소를 문자열로 만들어서 반환한다.
    System.out.println("Arrays.toString(arr) = " + Arrays.toString(arr));
}

}

String 클래스

char[]와 메서드(기능)을 결합한 것

  • 기본형처럼 사용이 가능한 참조형
    * String str = "행복";
    • String str = new String("행복");
  • 문자열을 많이 사용하기 때문에 특별하게 만들어진 클래스
  • String 클래스는 내용 변경x 새로운게 만들어짐

String 클래스의 주요 메서드

char charAt(int index) : 문자열에서 해당 위치(index)에 있는 문자를 반환
int length() : 문자열의 길이를 반환
String substring(int from, int to) : 문자열에서 해당 범위(from ~ to)의 문자열을 반환한다.(to는 포함 안됨)
boolean equals(Object obj): 문자열의 내용이 같은지 확인한다. 같으면 true, 다르면 false
char[] toCharArray(): 문자열을 문자배열(char[])로 변환해서 반환한다

String 배열의 선언과 생성

String[] name = new String[3];

  • 3개의 문자열을 담을 수 있는 배열을 생성
  • 참조형 이기 때문에 기본값 null 로 초기화

2차원 배열

테이블 형태의 데이터를 저장하기 위한 배열.

  • int[][] score = new int[4][3]

  • score[0][0] = 88; --> 배열 score의 1행 1열에 88을 저장합니다.

문자열 비교와 출력

equals(), toString()

배열 복사

copyOf(), copyOfRange()

정렬

sort()

profile
인정받는 개발자가 되고싶습니다.

0개의 댓글