배열

kmb·2022년 5월 11일
0

자바

목록 보기
7/31
post-thumbnail

배열 : 같은 타입의 데이터를 연속된 공간에 나열시키고, 각 데이터에 인덱스(index)를 부여해놓은 자료구조.

인덱스(index) : 배열에서의 위치를 가리키는 숫자

 

  • 배열의 특징
  1. 데이터가 여러개라면 연속된 공간이 필요하다.
  2. 시작 번지만 바라본다.
  3. 데이터 읽기가 빠르다. (인덱스를 사용하므로 검색 성능이 좋다)
  4. 0번지부터 시작한다.
  5. 오로지 같은 타입만 나열 할 수 있다.

 

  • 배열 선언 방법

1) 리터럴 방식 : 배열에 저장될 값의 목록이 있는 경우 사용

데이터 타입[] 변수{0,1,2, ...};

ex) 배열의 리터럴 방식 예시

public class ArrayEx01 {

    public static void main(String[] args) {

        int[] nums = {4,5,6};

        System.out.println("nums[0] = " + nums[0]);  // nums[0] = 4
        System.out.println("nums[1] = " + nums[1]);  // nums[1] = 5
        System.out.println("nums[2] = " + nums[2]);  // nums[2] = 6
    }
}

2) new 객체생성 방식 : 배열에 저장될 값의 목록이 없지만, 미리 배열을 만들 경우 사용.

1. 타입[] 변수 = new 타입[길이];

2. 타입[] 변수 = null;
   변수 = new 타입[길이];

new 연산자로 배열을 처음 생성할 경우 자동으로 기본값으로 초기화 된다.

ex) 배열의 new 객체생성 방식 예시

public class ArrayEx02 {

    public static void main(String[] args) {

        int[] nums = new int[3];  // 3개의 공간 생성
        nums[0] = 4;
        nums[1] = 5;

        System.out.println("nums[0] = " + nums[0]);  // nums[0] = 4
        System.out.println("nums[1] = " + nums[1]);  // nums[1] = 5
        System.out.println("nums[2] = " + nums[2]);  // nums[2] = 0   --> 인덱스2의 값은 초기값이므로 0
    }
}


다차원 배열 : 2차원이상의 배열로써 행과 열로 구성된다.

ex) 다차원 배열 예시

public class ArrayEx03 {

    public static void main(String[] args) {

		// 리터럴 방식
        int[][] nums = { {1,2,3}, {4,5,6} };

        System.out.println(nums[0][0]);  // 1
        System.out.println(nums[0][2]);  // 3
        System.out.println(nums[1][1]);  // 5

		// new 객체생성 방식
        int[][] nums2 = new int[2][2];
        nums2[0][0] = 1;
        nums2[0][1] = 2;
        nums2[1][0] = 3;
        nums2[1][1] = 4;

        System.out.println(nums2[1][0]);  // 3
    }
}


참조 타입(클래스, 인터페이스) 배열은 각 항목에 객체의 주소를 가지고 있다. 따라서 배열 항목간의 비교를 위해서는 == 연산자 대신 equals( ) 메서드를 사용해야한다.

String[] strArray = new String[3];

strArray[0] = "Java";
strArray[1] = "Java";
strArray[2] = new String("Java");

System.out.println(strArray[0] == strArray[1]);  // true (같은 객체를 참조)
System.out.println(strArray[0] == strArray[2]);  // false (다른 객체를 참조)
System.out.println(strArray[0].equals(strArray[2]));  // true (문자열이 동일)

 

출처

  • 이지업 컨텐츠 내의 데어프로그래밍 자바강의
profile
꾸준하게

0개의 댓글