Java 배열

도도링·2023년 6월 24일
0

자바 스터디

목록 보기
4/4

java에서 어떤 값을 저장하기 위해서는 우리는 변수를 사용한다.
하지만 변수는 하나의 값만 저장할 수 있는 단점이 있어 이를 보완하기 위한 수단으로 배열이 등장하였다.

1. 배열이란?

배열이란 동일한 타입의 값들을 하나의 묶음으로 저장한 자료 구조이다.
즉, 서로 연관성이 있는 같은 데이터들의 집합을 배열이라고 한다.
배열을 구성하는 각각의 값을 배열 요소(element)라고 하며,
배열의 위치를 가리키는 숫자를 인덱스(index)라고 한다.
배열의 인덱스 시작은 0번부터 시작된다.

2. 배열 형식

  • 선언

  • 선언 및 초기화
    String[ ] names={"윤","나","이"};
    int[ ] age={20,25,30};

  • 주의점
    값의 목록으로 배열 객체를 생성할 때, 배열 변수를 이미 선언한 후에는 다른 실행문에서 중괄호를 사용한 배열 생성이 허용되지 않는다.

    배열 변수를 미리 선언한 후 값 목록들을 기입하는 상황에는 다음과 같이 new 연산자를 사용해서 값 목록을 지정해주면 된다.


3. 배열의 특징

1) 메모리상에 연속된 여러 변수들이 모여서 하나의 배열을 이룬다.

	배열을 선언하게 되면 선언한 크기만큼의 연속된 메모리를 할당받는다.
    큰 사이즈의 배열을 선언하게 될 경우 해당하는 사이즈만큼의 메모리 공간이 필요한데,
    불연속적인 메모리 공간을 형성할 경우 메모리 할당이 불가능해서 오류가 뜨게된다.
    연속성이 있어 관리하기 편하고 낭비되는 공간이 없다는 장점이 있다.

2) [] 내부에 변수의 index를 지정하여 각각의 변수에 접근할 수 있다.

	String[] names={"윤","나","이"};
    
    names[0]="윤"
    names[1]="나"
    names[2]="이"

3) 선언할 때에 배열의 크기를 결정하며, 한 번 생성된 배열의 크기는 변경할 수 없다.

	100의 크기로 지정된 배열을 50크기만 사용할 경우 => 메모리 낭비
    100의 크기로 지정된 배열을 150크기를 사용할 경우 => 배열 새로 선언

4) 같은 종류의 변수만 선언이 가능하다. 같은 타입의 데이터형만 저장 가능하다.

	int 배열은 int 값만 저장 가능하다.
	String 배열은 String 값만 저장 가능하다.
	보완 => 다양한 데이터형의 묶음이 가능한 컬렉션이 있다.

4. 배열의 장점 및 단점

  • 장점
- 인덱스를 이용한 접근이 가능하기 때문에 모든 요소에 빠르게 접근이 가능하다.
- 기록밀도가 1이기 때문에 공간 낭비가 적다.
	List는 데이터 외에 포인터 등의 부가정보를 가지기 때문에 기록밀도가 1이 안되지만,
    배열은 부가정보없이 데이터만 저장하기 때문에 기록밀도가 1이다.
    * 기록밀도란? 기억매체의 단위 길이, 단위 면적 또는 단위 부피 당의 기억 정보량
- 간단하고 사용하기 쉽다.
  • 단점
- 배열은 선언한 후에는 할당된 정적 메모리로 인해 크기를 변경할 수 없다.
- 중간에 특정요소를 삽입 및 삭제하는 경우 항상 메모리가 순차적으로 이어져있어야
	하기때문에 삽입 및 삭제된 요소로부터 위에 있는 모든 요소들을 이동시켜주어야 된다.
- 배열의 크기가 대부분 정적으로 결정되기 때문에 삽입과 삭제가 동적으로
	발생하는 상황에서 적절한 배열의 크기를 미리 결정하는 것이 어렵고,
	이로 인해 오버플로우나 저장공간의 낭비를 초래할 수 있다.

참조

0개의 댓글