MENU

Java의 기본 배열 조작 요약

목차

선언과 동시에 배열 초기화

다음과 같이 작성하면 선언과 동시에 배열을 초기화할 수 있습니다.

샘플 코드

static void arraySample() { String[] s = {"사과", "귤", "바나나"}; } System.out.println(s[1]);

출력 결과:


배열의 요소 수 얻기 – 길이

배열에 몇 요소가 들어 있는지를 취득하고 싶은 경우는 length 를 사용합니다. length 는 메소드가 아니고, 필드인 점에 약간의 주의가 필요합니다.

샘플 코드

static void lengthSample() {
    String[] s1 = {"りんご", "みかん", "ぶどう"};
    String[] s2 = {};
    System.out.println(s1.length);
    System.out.println(s2.length);
}

출력 결과:

3
0

배열 복사 – clone

어느 배열과 같은 배열을 만들고 싶은 경우는, clone 가 편리합니다.

샘플 코드

static void cloneSample() { String[] s1 = {"사과", "귤", "포도"}; String[] s2 = s1.clone(); System.out.println(s1[0] + ' ' + s1[1] + ' ' + s1[2]); System.out.println ' + s2[2]); }

출력 결과:

사과 귤 포도 사과 귤 포도

배열 복사 – System.arraycopy

Java 의 배열은, 초기화시의 사이즈로 고정되어 버립니다. 한 번 만든 배열의 크기를 늘리려면 System.arraycopy를 사용해야 합니다.

arraycopy 는 clone 과 같이 배열을 복사할 때 사용하지만 clone 보다 세밀한 설정을 할 수 있습니다.

arraycopy(Object src, int srcPos, Object dest, int destPos, int length) src... 카피원의 배열 srcPos... 카피원 배열(src)의 카피하는 개시 위치 dest... 카피처의 배열 destPos... 카피처 배열(dest)의 카피하는 개시 위치 length... 카피하는 요소의 수

샘플 코드

static void arraycopySample() { String[] s1 = {"사과", "귤", "포도"}; String[] s2 = new String[5]; System.arraycopy(s1, 0, s2, 0, 3); s2[3] = "바나나"; s2[4] = " + " " + s1[1] + " " + s1[2]); System.out.println(s2[0] + " " + s2[1] + " " + s2[2] + " " + s2[3] + " " + s2[4]); }

출력 결과:

사과 귤 포도 사과 귤 포도 바나나 체리

배열의 결합을 하는 경우도 arraycopy 를 사용하면 편리합니다.

샘플 코드

static void joinArraySample() {
    String[] s1 = {"りんご", "みかん", "ぶどう"};
    String[] s2 = {"ばなな", "さくらんぼ", "もも"};
    int rLen = s1.length + s2.length;
    String[] rStr = new String[rLen]; //s1とs2両方の長さ分の配列を初期化
    System.arraycopy(s1, 0, rStr, 0, s1.length);
    System.arraycopy(s2, 0, rStr, s1.length, s2.length); //コピー先配列の開始位置の設定がポイント
    System.out.println(rStr[0] + " " + rStr[1] + " " + rStr[2] + " " + rStr[3] + " " + rStr[4] + " " + rStr[5]);
}

출력 결과:

사과 귤 포도 바나나 체리 모모

다차원 배열 만들기

배열에 배열을 만들어 다차원 배열을 만들 수 있습니다. 테이블 데이터를 저장할 때 유용합니다.

샘플 코드

static void twoDArraySample() { int[] a1 = {38, 84, 98}; int[] a2 = {32, 11, 56}; int[] a3 = {82, 77, 8}; int[][] twoDArray = {a1, a2, a3} score : a) { System.out.print(score + " "); } System.out.println(""); } }

출력 결과:

38 84 98 
32 11 56 
82 77 8 
  • URL을(를) 확인했습니다!
목차