JAVA

[JAVA] 배열

혼자공부중 2022. 2. 17. 19:01
변수는 한 개의 데이터만 저장할 수 있다. 따라서 저장해야 할 데이터의 수가 많아지면 그만큼 많은 변수가 필요하다

배열이란?

  • 배열은 같은 타입의 데이터를 연속된 공간에 나열시키고, 각 데이터에 인덱스(index)를 부여해 놓은 자료구조이다
  • 배열은 같은 타입의 데이터만 저장할 수 있다(ex: int배열은 int 값만 저장 가능하고, String 배열은 문자열만 저장 가능하다)
  • 배열은 선언과 동시에 저장할 수 있는 데이터 타입이 결정된다
  • 한 번 생성된 배열은 길이를 늘리거나 줄일 수 없다

 

배열 선언

  • 배열을 사용하기 위해서는 우선 배열 변수를 선언해야 한다
  • 배열 변수 선언은 두 가지 형태로 작성할 수 있다( 자료형[ ] 배열명; 자료형 배열명[ ];)
  • 배열 변수는 참조 변수에 속한다
  • 참조할 배열 객체가 없다면 배열 변수는 null 값으로 초기화될 수 있다( 타입[ ] 변수=null;)

 

값 목록으로 배열 생성

  • 자료형[] 배열명={값1, 값2, 값3, ...};
    
    int[] arr={1, 2, 3};
  • 중괄호{ }는 주어진 값들을 항목으로 가지는 배열 객체를 힙에 생성하고, 배열 객체의 번지를 리턴한다

 

new 연산자로 배열 생성

  • 값의 목록을 가지고 있지 않지만, 향후 값들을 저장할 배열을 미리 만들고 싶다면 new 연산자로 배열 객체를 생성할 수 있다
  • 자료형[ ] 배열명=new 자료형[길이];
    
    int[] arr=new int[5];
  • 길이는 배열이 저장할 수 있는 값의 수를 말한다
  • new 연산자로 배열을 생성할 경우에는 이미 배열이 선언된 후에도 가능하다
  • 자료형[] 배열명=null;
    배열명=new 자료형[길이];
    
    int[] arr=null;
    arr=new int[5];

 

배열 길이

  • 배열 길이는 배열에 저장 할 수 있는 전체 항목 수를 말한다
  • 배열의 길이를 얻으려면 배열 객체의 length 필드를 읽으면 된다
  • 배열명.length;
    
    int[] arr={10, 20, 30};
    arr.length; //3
  • length 필드는 읽기 전용 필드이기 때문에 값을 바꿀 수 없다

 

배열 복사

  • 배열 간의 항목 값들을 복사하려면 System.arraycopy() 메소드를 사용할 수 있다
  • System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length);
  • src : 원본 배열
  • srcPos : 원본 배열에서 복사할 항목의 시작 인덱스
  • dest : 복사본 배열
  • destPos : 복사본 배열에 붙여넣을 시작 인덱스
  • length : 복사할 개수
  • 사용 예
  • System.arraycopy(arr1, 0, arr2, 0, arr1.length);