본문 바로가기
자바

자바 정리 - (2) 배열

by 16비트 2023. 1. 16.

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[ ]을 생략할 수 있음

생성된 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); //모든 요소의 합
    }
}

생성된 2차원 배열

 

 

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

댓글