Language/Java

배열

느낌표 공장장 2021. 3. 31. 00:39

배열

1) 배열의 선언

요일들을 하나씩 변수로 표현하기 위해 하나하나 선언하고 사용한다는 것은 귀찮은 일이다. 이런 불편함을 해소하기 위해 자바의 배열을 사용한다.

배열이란 같은 자료형들이 모인 목록과 비슷한 개념이다. 

type[] array = {value1, value2, ..., valueN};

자료형 뒤에 대괄호를 달게 되면 이 자료형의 배열을 사용하겠다 라는 의미가 된다! 

 

2) 배열의 요소에 접근하기

public class ArrayExample {
    public static void main(String[] args) {
        String[] days = {"월", "화", "수", "목", "금", "토", "일"};
        System.out.println(days[0]);
        System.out.println(days[6]);
    }
}

월, 일이 출력된다. 

 

3) 배열의 길이 알아내기

요소의 길이를 나타내는 length를 이용하여 배열의 길이를 출력할 수 있다.

public class ArrayExample {
    public static void main(String[] args) {
        String[] days = {"월", "화", "수", "목", "금", "토", "일"};
        int lengthOfDays = days.length;
        System.out.println(lengthOfDays);
    }
}

7이 출력된다.

 

4) 배열을 반복문에 사용하기

public class ArrayExample {
    public static void main(String[] args) {
        String[] days = {"월", "화", "수", "목", "금", "토", "일"};

        for (int i = 0; i < days.length; i = i + 1) {
            System.out.println(days[i] + "요일");
        }
    }
}

 

5) 배열의 특정 요소 바꾸기

public class ArrayExample {
    public static void main(String[] args) {
        String[] days = {"월", "화", "수", "목", "금", "토", "일"};

        days[0] = "일" ;

        for (int i = 0; i < days.length; i = i + 1) {
            System.out.println(days[i] + "요일");
        }
    }
}

days[0]과 같이 특정 요소에 접근해 어떤 값을 대입해주면 값을 변경하는 것이 가능하다.

 

6) 세련된 반복문 for-each

for (type element : array) {
	 실행할 코드
}

* type : 배열 요소의 자료형

* element : 반복문 안에서 현재 요소를 지칭할 이름

* array : 반복문을 적용할 배열

 

예제

public class ArrayExample {
    public static void main(String[] args) {
        String[] days = {"월", "화", "수", "목", "금", "토", "일"};

        for (String day : days) {
            System.out.println(day + "요일");
        }
    }
}

 

7) 배열의 한계

배열에서의 주의할 점

- 배열의 마지막 요소의 인덱스보다 뒤의 번호로 접근하면 오류가 발생한다. 

- 배열의 크기는 만들어내는 동시에 정해지는 것이기 때문에 이후에는 배열의 길이를 변경할 수 없다.

public class ArrayExample {
    public static void main(String[] args) {
        String[] days = {"월", "화", "수", "목", "금", "토", "일"};

        days[7] = "일";
        }
    }
}

7번째 요소로 추가하자 오류가 발생했다.

 

8) 배열에 값 추가하기

public class ArrayExample {
    public static void main(String[] args) {
        String[] days = {"월", "화", "수", "목", "금", "토", "일"};

        String[] days2 = Arrays.copyOf(days, 8);

        days2[7] = "일";

        for (String day : days2) {
            System.out.println(day);
        }
    }

  1. days2 라는 이름으로 새로운 문자열 타입의 배열을 선언하고 Arrays.copyOf라는 배열 복사 기능을 이용해 days를 복사한다. (첫 번째 입력값으로 복사할 배열, 두번째 입력 값으로 새로 만들 배열의 길이를 입력해준다.)
  2. days2의 마지막 요소의 값으로 "일"을 추가해준다.

 

9) 배열을 통으로 출력하기

Arrays.toString

import java.util.Arrays;

public class ArrayToString {
    public static void main(String[] args) {
        String[] days = {"월", "화", "수", "목", "금", "토", "일"};

        System.out.println(days);
        System.out.println(Arrays.toString(days));
    }
}

배열을 그냥 출력하면(days) 이상한 문자가 출력되지만,

Arrays.toString을 이용하면 배용의 내용이 한번에 출력된다.

 

10) 2차원 배열

: 배열들의 배열. (선이 아닌 면의 형태) 

import java.util.Arrays;

public class TwoDimensionalArray {
    public static void main(String[] args) {
        String[][] days = {
                {"월", "화", "수", "목", "금", "토", "일"},
                {"월", "화", "수", "목", "금", "토", "일"},
                {"월", "화", "수", "목", "금", "토", "일"}
        };

        System.out.println(Arrays.toString(days[0]));
        System.out.println(Arrays.toString(days[1]));
        System.out.println(Arrays.toString(days[2]));
    }
}

 

 

 

유투브 "초간단 자바"님 영상을 통해 공부한 내용입니다 !
www.youtube.com/watch?v=1Y9bijpqSug

'Language > Java' 카테고리의 다른 글

파일 읽고 쓰기  (0) 2021.04.02
숫자 맞추기 게임 만들기  (0) 2021.03.31
반복문  (0) 2021.03.30
조건문  (0) 2021.01.30
사용자 입력과 예외 처리  (0) 2021.01.26