배열 (Array)

Dev.Dana·2024년 11월 11일

Data Structure

목록 보기
2/2
post-thumbnail

배열

  • 데이터를 나열하고, 각 데이터를 인덱스에 대응하도록 구성한 데이터 구조
    - 인덱스 번호를 통해 번호에 해당하는 데이터를 찾을 수 있음

명칭

  • index : 각각의 값들을 식별하기 위한 식별자
  • value : 각각의 데이터
  • element : 인덱스와 값을 합한 것

배열이 왜 필요할까?

  • 데이터가 적을 땐 사용할 필요가 없다.
  • 그러나 데이터가 많아진다면??
    • ex) 학교 - 학년 - 반 식으로 그룹을 지어야한다.
    • 그룹 관리의 필요성 ⇒ 이럴때 필요한것이 배열 여러 데이터를 하나의 이름으로 그룹핑해서 관리하기 위한 데이터 스트럭쳐
  • 같은 종류의 데이터를 효율적으로 관리하기 위해 사용 → 같은 종류의 데이터순차적으로 저장된다!!

배열의 장점

  • 빠른 접근 가능
    • why? 인덱스 번호를 통해 데이터의 맨 앞 주소만 알면 해당 데이터를 바로 찾을 수 있다.

배열의 단점

  • 데이터가 가변적이라면 추가/수정/삭제가 어렵다.
  • 미리 최대 길이를 지정해야 함

배열을 만드는 법

int[] numbers1 = new int[4];

  1. int 엘리먼트의 데이터 타입
  2. [] 배열임을 의미
  3. [4] 배열의 크기
//1.
numbers[0] = 10; // 0번째 index에 10을 넣는다.

//2.
//각 엘리먼트의 값을 한꺼번에 지정해 준다.
int[] numbers2 = {10, 20, 30, 40}; 
int[] numbers3 = new int[]{10, 20, 30, 40}; //위의것과 동일
  • 배열의 크기만 알고 아직 뭘 담을지 모른다면 위 방식을 사용한다.
  • 배열에 어떤 값을 담을 것인지 미리 알고 있다면 아래 방식을 사용한다.

배열의 값 가져오기

System.out.printLn(numbers1[0]); // 10
System.out.printLn(numbers1[4]); // 0
  • 만약 아직 값을 지정하지 않은 엘리먼트의 값을 가져오려 한다면?
    • 숫자인 경우 기본값으로 0
    • 문자나 문자열, 객체인 경우 기본값으로 null 을 넣는다.

배열의 크기 알기

System.out.println(numbers1.length); //4
  • 자바에서 배열의 길이 값은 내가 설정한 값들의 개수가 아니라. 그 배열을 구성하고 있는 element의 개수를 의미한다. → 그래서, 배열을 사용할 때 몇개의 값을 넣었는지를 알고 싶다면 프로그래밍을 할 때 따로 카운트를 해줘야한다.
int i=0;
while (numbers1.length > i) {
	System.out.println(numbers1[i]);
	i++;
}

for (int i=0; numbers1.length > i, i++) {
	System.out.println(numbers1[i]);
}
  • for문과 다르게 while문은 i의 초기값을 지정하는코드, 반복조건을 나타내는 코드, i의 증감식을 나태내는 코드가 응집되어있지 않고, 다 떨어져 있다.
  • 이는 나중에 각 코드 사이에 다른 코드가 끼어 들어갈 수 있음을 의미한다.
  • 이 반복문을 동작시키기 위한 코드들이 서로 멀리 떨어져있다?
    1. 그 사이에 수많은 버그를 발생시킬 코드가 포함될 가능성이 높아진다.
    2. 반복문의 동작방법을 한눈에 알아보기 어렵다.
profile
어제의 나보단 나은 오늘의 내가 되기를

0개의 댓글