이 영역을 누르면 첫 페이지로 이동
codesche's blog 블로그의 첫 페이지로 이동

codesche's blog

페이지 맨 위로 올라가기

codesche's blog

배열(Array)

  • 2024.06.17 12:01
  • 알고리즘 지식/자료구조

1. 배열(Array)

2. 선언 방법

3. 배열 요소의 타입

4. 다차원 배열

5. 인덱스(Index)

6. 배열의 특징


 

배열(Array)

 

  • 동일한 타입의 데이터를 여러 개 저장할 수 있는 고정된 크기의 자료구조
  • 자바에서 배열은 객체(Object)
  • 배열 변수는 참조 변수, 배열 객체는 heap 영역에 저장됨
  • 데이터를 일련의 메모리 위치에 저장
  • 각 데이터에 대한 인덱스(Index)를 사용하여 접근
  • 배열의 크기를 변경할 수 없음

 

선언 방법

 

1. 선언과 동시에 크기르 지정

int[] numbers = new int[10];  // 배열 객체를 생성하고, 참조값을 변수에 저장한다.

 

2. 크기를 지정하지 않고 선언

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

 

배열 요소의 타입

 

자바에서 배열 선언 시, 배열 요소의 타입과 크기를 지정해야 함. 배열 요소 타입은 자바의 모든 데이터 타입(int, double, char, String)일 수 있으며, 요소 타입은 모두 같아야 함

int[] numbers = new int[5]; // int형 요소 5개를 저장하는 배열
double[] prices = new double[10]; // double형 요소 10개를 저장하는 배열
String[] names = new String[3]; // String형 요소 3개를 저장하는 배열

 

 

다차원 배열

 

배열은 다차원 배열로 선언할 수도 있다.

int[][] matrix = new int[3][3];    // 3 x 3 크기의 2차원 배열
int[][][] cube = new int[3][3][3]; // 3 x 3 x 3 크기의 3차원 배열

 

인덱스(Index)

 

배열의 각 요소에 접근하려면 인덱스를 사용해야 한다.

인덱스는 0부터 시작하며, 배열의 마지막 인덱스는 '배열의 길이 - 1' 이다.

배열의 길이보다 큰 값을 인덱스로 사용하면 ArrayIndexOutOfBoundsException 예외가 발생한다.

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

// 배열의 요소에 액세스
int firstNumber = numbers[0];  // 1
int secondNumber = numbers[1]; // 2

// 배열의 요소에 값 할당
numbers[2] = 6;    // {1, 2, 6, 4, 5}

// 다음과 같이 반복문을 사용하여 배열의 모든 요소를 참조할 수 있다.
for (int i = 0; i < numbers.length; i++) {
    int number = numbers[i];
    System.out.println(number);
}

 

배열의 특징

 

  • 메모리 관리
    배열은 연속된 메모리 공간에 요소를 저장하기 때문에, 요소에 대한 메모리 관리가 용이하다.
  • 크기 변경 불가능
    배열은 한 번 생성된 후 크기를 변경할 수 없다. 크기를 변경해야 하는 경우, 새로운 배열을 생성하여 이전 배열의 요소를 복사해야 한다.
  • 메모리 낭비
    배열은 고정된 크기를 가지기 때문에, 요소의 개수가 많지 않은 경우에는 메모리 낭비가 발생할 수 있다.
  • 요소의 삽입, 삭제가 비효율적
    배열은 요소의 삽입, 삭제가 비효율적이다. 삽입 또는 삭제 작업 후 요소의 인덱스를 업데이트해야 하므로, 이 작업이 많아지면 성능이 저하될 수 있다.

 

ArrayList

 

  • Arrays.sort(array): 배열의 요소를 오름차순으로 정렬
  • Arrays.binarySearch(array, value): 정렬된 배열에서 저장된 값의 인덱스를 찾음
  • Arrays.fill(array, value): 배열의 모든 요소를 지정된 값으로 채움
  • Arrays.copyOf(array, length): 배열을 지정된 길이로 복사
  • Arrays.equals(array1, array2): 두 배열이 같은지 확인
  • Arrays.deepEquals(array1, array2): 다차원 배열 비교
  • Arrays.asList(array): 배열을 리스트(list)로 변환

'알고리즘 지식 > 자료구조' 카테고리의 다른 글

[자료구조]Map 인터페이스  (0) 2023.01.11
[자료구조]문자열  (0) 2023.01.02
[자료구조]버블 정렬  (0) 2022.12.30
[자료구조]원형 큐  (0) 2022.12.27
[자료구조]슬라이딩 윈도우 With 투 포인터  (0) 2022.12.26

댓글

이 글 공유하기

  • 구독하기

    구독하기

  • 카카오톡

    카카오톡

  • 라인

    라인

  • 트위터

    트위터

  • Facebook

    Facebook

  • 카카오스토리

    카카오스토리

  • 밴드

    밴드

  • 네이버 블로그

    네이버 블로그

  • Pocket

    Pocket

  • Evernote

    Evernote

다른 글

  • [자료구조]Map 인터페이스

    [자료구조]Map 인터페이스

    2023.01.11
  • [자료구조]문자열

    [자료구조]문자열

    2023.01.02
  • [자료구조]버블 정렬

    [자료구조]버블 정렬

    2022.12.30
  • [자료구조]원형 큐

    [자료구조]원형 큐

    2022.12.27
다른 글 더 둘러보기

정보

codesche's blog 블로그의 첫 페이지로 이동

codesche's blog

  • codesche's blog의 첫 페이지로 이동

검색

메뉴

  • 홈
  • 태그
  • 방명록

카테고리

  • 분류 전체보기 (76)
    • Algorithm (15)
      • 백준 (3)
      • 프로그래머스 (10)
      • inflearn 알고리즘(Java) (2)
    • 블로그소개 (1)
    • Back-End (11)
      • Java (10)
      • SpringBoot (1)
    • Database (2)
      • MySQL (0)
      • MariaDB (1)
      • Redis (0)
      • 개념, 이론 (1)
    • Front-End (0)
      • html, css, javascript (0)
    • Git (2)
    • 알고리즘 지식 (11)
      • 자료구조 (11)
    • Study Cafe (21)
      • 기술면접 (6)
      • Clean Code 스터디 (14)
      • CS 스터디 (0)
      • 개발용어 (1)
    • 주간 에세이 (10)
    • DevOps (3)
      • 배포, Front&Back 연동 (1)
      • AWS (0)
      • Docker (1)
      • 이론 (1)

최근 글

인기 글

댓글

공지사항

아카이브

태그

  • 클린코드
  • 자료구조
  • java
  • 자바 변수
  • 주간에세이
  • git commit
  • 자바 기초
  • 개발자 현실

나의 외부 링크

정보

The Code의 codesche's blog

codesche's blog

The Code

블로그 구독하기

  • 구독하기
  • RSS 피드

방문자

  • 전체 방문자
  • 오늘
  • 어제

티스토리

  • 티스토리 홈
  • 이 블로그 관리하기
  • 글쓰기
Powered by Tistory / Kakao. © The Code. Designed by Fraccino.

티스토리툴바