[Java] 1차원 배열, 다차원 배열

YoungMinKim·2020년 11월 8일
0
post-thumbnail

배열

  • 각각의 메모리 공간을 나란히 나열 한 것을 배열이라 한다.
  • 동일한 자료형의 변수를 둘 이상 나란히 할당 한 것.
  • 배열은 인덱스를 통해 데이터를 찾기 때문에 속도가 빠르다.
    • List 자료구조에 비해 속도가 빠르지만, 데이터의 삭제 면에서는 좋지 않다.
  • 배열은 데이터 삭제 시 빈 메모리 공간이 생겨 리소스 관리 차원에서 List 구조에 비해 좋지 않다.

1차원 배열의 이해와 선언 방법

1차원 배열

  • 타입이 같은 둘 이상의 데이터를 저장할 수 있는 1차원 구조의 메모리 공간.

1차원 배열의 선언 방법

- int [] ref = new int[5]; // 배열 생성
  • int형 변수 5개의 메모리 공간을 생성 한다.
  • 해당 메모리 공간에 저장된 배열 데이터의 참조 값이 반환 된다.

배열 선언문에 대한 세세한 이해와 결과

1차원 배열

  • 배열 역시 하나의 Instance다??

배열의 활용: 값의 저장과 참조

배열의 활용

  • 배열의 인덱스(index)는 0부터 시작이 된다.

값의 저장과 참조의 예

Box [] array = new Box[3];

array[0] = new Box("First");
array[1] = new Box("Second");
array[2] = new Box("Third");
  • 배열에 클래스의 인스턴스를 생성해 넣을 수 있다.
  • 배열 요소는 데이터에 순차적인 접근가능하다.

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

//배열 생성
int [] arr = new int[3];

//배열 생성 및 초기화
int [] arr = new int[] {1, 2, 3};

//배열 생성 및 초기화
int [] arr = {1, 2, 3};

배열의 참조 값과 Method

배열의 참조 값과 Method

  • 매개변수 인자로 배열의 참조 변수를 전달 할 수 있다.
  • 배열의 참조 값을 반환 타입으로 지정 할 수 있다.

배열의 디폴트 초기화

//기본 배열 선언
int [] ar = new int[10];
String [] ar = new String[10];

//1. 두 번째 인자로 전달된 값으로 배열을 초기화
public static void fill(int[] a, int val)

//2. 인덱스 fromIndex ~ (toIndex-1)의 범위까지 val의 값으로 배열 초기화
public static void fill(int[] a, int fromIndex, int toIndex, int val)

// Java.Util.Arrays Class에 정의되 있는 메서드, 원하는 값으로 배열 전부 또는 일부를 채울 때 사용하는 메서드.

For-Each

int [] ar = {1, 2, 3, 4, 5};

//[1]
for(int i=0;i<ar.length;i++){
	System.out.println(ar[i]);
}

//[2]
for(int e : ar){
	System.out.println(e);
}

for~each문

  • 현재 배열에 존재하는 데이터를 순차적으로 받아 처리한다.
  • 하나의 Instance를 'e'에 저장한다 생각해도 된다.

3 다차원 배열의 이해와 활용

2차원 배열

  • 1차원 배열이 절대적으로 많이 사용이 되지만, 2차원 배열 역시 사용이 된다.
  • 2차원 배열은 1차원 배열의 모임의 형태로 구현이 된다. (상식)
  • 2차원 배열은 1차원 배열의 모임 이기에 데이터 저장 길이를 조절 할 수 있다.

2차원 배열의 생성

2차원 배열 생성

- int [][] arr = new int[3][4];
  • new int[3][4] → 세로 3줄, 가로 4줄을 의미하는 2차원 배열 선언.
  • 길이42차원 배열3개 묶어서 선언 하겠다는 의미.

2차원 배열의 접근

2차원 배열의 접근

  • 0-0
  • 0-1
  • 0-2
  • 1-0
  • 1-1
  • 1-2 .....

2차원 배열의 예

//2차원 배열의 초기화
int [][] arr {
	{11, 22, 33},
	{44, 55, 66},
	{77, 88, 99}
};

int [][] arr {
	{11},
	{44, 55, 66},
	{77, 99}
};
profile
https://ym1085.github.io

0개의 댓글