배열(1)

김용민·2023년 3월 17일
0

(¬‿¬)배열이란?

같은 자료형의 여러 데이터를 묶어서 '연속된' 메모리 공간에 넣는 자료형

그럼 배열이 왜 필요할까?

만약에 int 자료형 5개 int n1, n2, n3, n4, n5가 있다고 하자
n1 = 55, n2 = 33, n3 = 52, n4 = 378, n5 = 3418961이라고 하면
간단한대로 콘솔에 이 다섯 숫자를 출력하고 싶다면

System.out.println(n1);
System.out.println(n2);
System.out.println(n3);
System.out.println(n4);
System.out.println(n5);

이렇게 5번 해야 나올 것이다.

그러면 이 int n1, n2, n3, n4, n5를 반복문으로 돌려서 출력을 할수 있을까?

그래서 배열이라는게 나왔다
어떤 메모리 공간 하나의 주소를 int[] 자료형으로 받기 떄문에 reference 타입이 되고
가리킨 주소의 공간부터 순서대로 index로 번호를 지정해서 순차적으로 '참조'할 수
있는 것이다

그럼 배열은 어떻게 선언할까?

선언하는 방법은 크게 두가지가 있는데
여기서는 간편하게 int 배열로 선언해보자

// 직접 숫자를 지정해서 선언하는 경우
int[] arr1 = { 1,2,3,4,5};

// 배열의 크기를 지정해서 선언하는 경우
int[] arr2 = new int[5];

만약에 친절하게 크기도 지정하고 직접 숫자도 넣어주고 하면 어떨까?

에러뜬다..😢

// 요래 쓰면 컴퓨터가 안읽어줌
int[] arr3 = new int[5]{1,2,3,4,5};

여기서 위의 int[] arr2 = new int[5];
는 이렇게 선언하면 arr2에는 뭐가 들어있을까?

short, int, long 자료형 0
double, float 자료형 0.0
reference 자료형 null
char 자료형 ''
라고 들어간다

( •_•)>⌐■-■배열의 특징

  1. 배열은 참조변수이다~!(reference type)
  2. 배열은 참조변수이기 때문에 직접 출력하면 정상적으로 나오지 않는다(주소값이 나옴)
  3. 초기화 하지 않으면 자료형에 맞는 0 값으로 초기화 된다
  4. reference타입의 배열을 받아서 배열의 원소가 null이라면, 그 인덱스를 가지고 연산을 수행할 수 없다 (nullPointerException)
  5. 선언시에 길이가 고정이 되어버려서 배열의 index를 추가하는 것을 불가능!
  6. 선언한 배열은 그 안의 자료형이 같아야함 (int[] 이라면 안의 값들은 전부 int)

배열을 출력하는 방법

배열은 참조변수이기 때문에 (String같은 건 제외) 바로 출력하면 주소값의 해쉬값이 출력된다
그렇기 때문에 두가지 정도로 출력할 수 있는데

int[]  arr = {16,78,4,9,512,4564};

//1) 반복문을 이용해서 출력
for(int i = 0; i < arr.length; i++) {	// (배열).length -> 배열의 크기를 정수로 돌려주는 메서드 
	System.out.print(arr[i] + " ");
}

// 2) Arrays를 import해서 쓰는방법
import java.util.Arrays;

System.out.println(Arrays.toString(arr));

위처럼 나타낼 수 있다.

profile
안녕하세요

0개의 댓글