Skip to content

Latest commit

 

History

History
131 lines (88 loc) · 3.79 KB

File metadata and controls

131 lines (88 loc) · 3.79 KB
layout default
title Array
parent Java
nav_order 6
has_children true

Java Array

{: .no_toc .text-beta .fw-700}

Table of contents

{: .no_toc .text-delta }

  1. TOC {:toc}

Java Array Basic

What is Array?

동일 타입의 데이터를 연속된 공간에 배치시키고 각 데이터에 index를 부여해서 저장하는 자료구조

변수는 한개의 값만 저장 가능해 저장할 데이터의 수가 많아지면 많은 변수가 필요해서 비효율적

배열은 좀 더 효율적인 방법으로 데이터를 저장할 수 있게 하는것

  • 요소(element) : 배열을 구성하는 각각의 값

  • 인덱스(index): 배열에서의 위치를 가리키는 숫자, 인덱스는 언제나 0부터 시작하며, 0을 포함한 양의 정수만을 가짐

Features of Array

▸ 배열도 모두 객체이므로, 각각의 배열은 모두 자신만의 필드와 메소드를 가지고 있음

▸ 배열은 참조변수로서 객체이기 때문에 힙 메모리영역에 저장되고 배열 변수는 힙영역의 배열객체의 메모리주소를 참조하게 됨

▸ 참조할 배열 객체가 없다면 배열 변수는 null값으로 초기화 할 수 있음

다차원배열? {: .label .label-yellow .mt-2}

배열은 선언되는 형식에 따라 1차원 배열, 2차원 배열뿐만 아니라 그 이상의 다차원 배열로도 선언가능

하지만 현실적으로 이해하기가 쉬운 2차원 배열까지가 많이 사용됨

Constraint of Array

▸ 배열의 길이는 한번 정의하면 변경할 수 없음

▸ 동일의 데이터타입만 저장할 수 있음

Array Declaration

배열 선언

  • 데이터타입 : 배열 요소로 저장되는 변수의 타입을 명시

  • 배열 이름 : 배열이 선언된 후에 배열에 접근하기 위해 사용

syntax {: .label .mt-2}

1. 데이터타입[] 배열이름; → 되도록 첫번째 방법을 사용하는게 좋음
  1. 데이터타입 배열이름[];

▸ 위와같이 선언된 배열은 new 연산자로 생성 가능

배열이름 = new 타입[배열길이];

▸ 배열길이 : 해당 배열이 몇 개의 배열 요소를 가지게 되는지 명시

▸ 선언과 생성 동시에 하기

데이터타입[] 배열이름 = new 타입[배열길이];
```java int[] score2 = new int[5]; ```

Array Initialize

배열의 초기화

초기화 블록(initialization block): 괄호({})를 사용하여 초깃값을 나열한 것

초기화 블록을 이용하여 배열을 선언과 동시에 초기화할 수 있음

syntax {: .label .mt-2}

1. 타입[] 배열이름 = {배열요소1, 배열요소2, ...};
  1. 타입[] 배열이름 = new 타입[]{배열요소1, 배열요소2, ...};
  • 두번째 방법으로 해야할 경우

    ▸ 배열의 선언과 초기화를 따로 진행해야 할 경우

    ▸ 메소드의 인수로 배열을 전달하면서 초기화

```java int[] grade1 = {70, 90, 80}; // 배열의 선언과 동시에 초기화 int[] grade2 = new int[]{70, 90, 80}; // 배열의 선언과 동시에 초기화 int[] grade3; // grade3 = {70, 90, 80}; // 이미 선언된 배열을 이 방법으로 초기화하면 오류 int[] grade4; grade4 = new int[]{70, 90, 80}; // 이미 선언된 배열은 이 방법으로만 초기화 ```

배열 생성 시 자동으로 들어가는 초기값 {: .label .label-red .mt-2}

배열타입 초깃값
char '\u0000'
byte, short, int 0
long 0L
float 0.0F
double 0.0 또는 0.0D
boolean false
배열, 인스턴스 등 null