서론

오늘은 배열 기초에 대해 공부 해 보았다.

  • 배열 : 같은 타입의 변수를 하나로 다루는 것

변수를 여러개 쓰기보다 배열을 이용하면 간단하게 처리할 수 있다.
배열은 생성과 동시에 자신의 타입에 맞춰 기본값으로 초기화된다.

내용

  1. 배열 조건식
        int subject = new int[4]; // 배열길이 변경

        for (int i=0; i<5; i++) {
            System.out.println(subject[i]);
        } //에러

배열의 길이를 [5]에서 [4]로 변경했을 때
위의 조건식과 같은 형태로 쓴다면 배열길이를 수정할 때 마다 조건식도 수정해줘야한다.

        for (int i=0; i < subject.length; i++) {
            System.out.println(subject[i]);
            } 

따라서 조건식을 쓸 때 애초부터 정수가 아닌 '배열이름.length'로 적어주는것이 나중에 조건식을 변경하지 않아도 되므로 훨씬 좋다.


  1. 배열의 복사
    배열은 한번 생성하면 길이를 수정할 수 없기 때문에 기존배열보다 길이를 늘린 배열을 생성 후 복사해주는 방법을 사용한다.
    배열을 복사 할 때는 for문 사용 보다 arraycopy()를 이용하면 편리하다.
       for (int i=0; i<num.length; i++) {newNum[i] = num[i];}
       // for문 이용 시 배열의 요소 하나하나 접근하여 복사
        
        System.arraycopy(num, 0, newNum, 0, num.length);
       // arraycopy()는 지정된 범위의 값을 통으로 복사
       // num[0]에서 newNum[0]으로 num.length개 복사



  1. 다차원배열
    2차원 배열 score가 있다고 할 때 score 요소들의 합을 구하고 싶다면 향상된 for문을 이용할 수 있다.
        for (int[] tmp : score) {
            for (int i : tmp) {
                sum += i;}}

이때 주의할 점은 score의 각 요소는 1차원 배열이므로 tmp에 저장하기위해 두번째 줄에 for문을 하나 더 추가해야한다.

(향상된 for문으로 배열의 각 요소에 저장된 값들을 순차적으로 읽어올수는 있지만 변경할수는없다.)


  1. String배열
    String클래스의 메서드
  • boolean equals(Object obj) : 문자열의 내용이 obj와 같은지 확인하는것

기본형 변수의 값 비교의 경우 '=='연산자를 사용하지만 문자열 내용 비교의 경우 equals()를 사용해준다.

(대소문자 구분않으려면 equalsIgnoreCase() 사용)


느낀점

  • 배열은 이해를 먼저 하려고 하기보다 예제를 직접 풀어보는게 빠른이해에 도움이되는것같다.
  • index 범위를 항상 고려하기
  • 참조변수 개념에 대해 자세히 알고 보면 이해하기 더 쉬울것같다.
profile
이안이의 우당탕탕 개발기

0개의 댓글