배열과 ArrayList

배열

  • 하나의 변수만 선언 하면서 순서대로 값을 담을 수 있는 자료구조

배열 선언

  • int[] arr1;
  • int arr1[];
  • int[] arr1 = null;
  • int[] arr1 = new int[5];
  • int[] arr = {10,20,30,40,50};

다차원배열

  • 2차원 이상의 배열(행렬과 동일)

다차원배열 선언

  • int[][] arr = new int[3][3];
  • int[][] arr = {{1,2,3},{4,5,6},{7,8,9}};

ArrayList

  • 배열과 비슷한 Java에서 기본 생성되어 있는 클래스
  • 배열은 모든 값이 동일한 자료형이지만, ArrayList는 다양한 자료형의 값 저장이 가능하다.
  • 배열은 선언 시 지정된 길이에서 변경이 불가능하지만, ArrayList는 자유롭게 값 추가가 가능하다.

ArrayList 사용 방법

  • 클래스 import
    • import java.util.ArrayList;
  • 객체 생성
    • ArrayList al = new ArrayList();
  • 값 추가
    • al.add("홍길동");
    • al.add(1);
    • al.add(95.5);
  • 값 접근
    • al.get(0); >>>> 홍길동 출력
    • get의 리턴 타입은 Object 이므로 필요한 경우 반드시 형변환을 해주어야 한다.

배열 복사

  • 배열은 한 번 생성된 값들의 개수 수정 불가능
  • 값을 추가하기 위해서는 새로운 배열 생성 후 값을 복사해야 한다.
  • 배열 복사 방법
    • for문
    • System.arrayCopy()
      • System.arraycopy(원본, 원본 시작 인덱스, 목적지, 복사 시작될 인덱스, 길이);
    • Arrays.copyOf()
      • int[] arr2 = Arrays.copyOf(원본, 새로운배열길이);

향상된 for문

  • v라는 임시 변수가 arr2를 돌며 확인
for int(v : arr2) {
   System.out.println(v);
}

참조 자료형

  • 값이 저장된 위치의 주소를 참조하는 변수
int[] arr1 = {1,2,3};
int[] arr2 = arr1;    // 다른 배열 선언

System.out.println(arr == arr2);

arr2[1] = 4;
System.out.println(arr1[1]);
  • 위 코드 실행 결과
true
4
  • arr1과 arr2는 완전히 같은 배열이며, 한 곳에서 값이 변경되면 다른 곳도 함께 변경된다.

좋은 웹페이지 즐겨찾기