2018-3-7 TIL Console Array

배열

  • 배열이란 ‘자료형이 같은 둘 이상의 값’을 저장할 수 있는 메모리공간을 의미한다. 그리고 배열은 1차원 배열, 2차원 배열, 다차원 배열로 나뉜다.
public static void main(String [] args){
	int [] ref; // 참조변수 선언
    ref = new int[5]; // 배열 인스턴스 생성
    ....
}

package yoon;

public class ArrayIsInstance {
    public static void main(String [] args){
        // 길이가 5인 1차원 배열 생성
        int [] ar1 = new int [5];

        // 길이가 7인 double형 1차원 배열의 생성
        double [] ar2 = new double [7];

        // 배열의 참조변수와 인스턴스 생성 분리
        float [] ar3;
        ar3 = new float[9];

        //배열의 인스턴스 변수 접근
        System.out.println("배열 ar1의 길이 : " + ar1.length);
        System.out.println("배열 ar2의 길이 : " + ar2.length);
        System.out.println("배열 ar3의 길이 : " + ar3.length);
    }
}
//result
배열 ar1의 길이 : 5
배열 ar2의 길이 : 7
배열 ar3의 길이 : 9
package yoon;

class Box {
    private String conts;

    Box(String cont){
        this.conts = cont;
    }

    public String toString() {
        return conts;
    }
}

public class ArrayIsInstance2 {
    public static void main(String [] args){
        Box [] ar = new Box[5]; // 길이가 5인 Box형 1차원 배열의 생성
        System.out.println("length : " + ar.length);
    }
}
//result
length : 5
  • Box형 인스턴스 5개를 저장할 수 있는 참조변수의 배열이다.
package yoon;

public class BoxArray {
    public static void main(String [] args){
        Box [] ar = new Box[3];

        //배열에 인스턴스 저장
        ar[0] = new Box("first");
        ar[1] = new Box("second");
        ar[2] = new Box("third");

        System.out.println(ar[0]);
        System.out.println(ar[1]);
        System.out.println(ar[2]);
    }
}
//result
first
second
third

배열을 생성과 동시에 초기화하기

int [] arr = new int[3] {1, 2, 3};
int [] arr = new int[] {1, 2, 3};
// 위의 경우 둘 다 가능
int [] arr = {1, 2, 3}

배열의 초기화와 배열의 복사

int [] ar = new int [10]; // 배열의 모든 요소 0으로 초기화
String [] ar = new String[10]; // 배열의 모든 요소 null로 초기화
  • 위와 같은 경우 원하는값으로 초기화를 못한다.

  • public static void fill(int [] a, int val) : 두 번째 인자로 전달된 값으로 배열 초기화
  • public static void fill(int [] a, int fromIndex, int toIndex, int val) : 인덱스 fromIndex ~ toIndex-1의 범위까지 val값으로 배열 초기화
package yoon;

import java.util.Arrays;

public class ArrayUtils {
    public static void main(String [] args){
        int [] ar1 = new int[10];
        int [] ar2 = new int[10];

        Arrays.fill(ar1, 7); // 배열 ar1을 7로 초기화
        System.arraycopy(ar1, 0, ar2, 3, 4);
        // 배열 ar1을 ar2로 부분복사

        for(int i = 0; i < ar1.length; i++)
            System.out.print(ar1[i] + " ");
        System.out.println();

        for(int i = 0; i < ar2.length; i++)
            System.out.print(ar2[i] + " ");
    }
}

main메소드의 매개변수 선언

  • public static void main(String [] args){…}
  • 매개변수로 String배열의 참조변수가 선언되었다.
Written on March 7, 2018