[Java] 배열(array)

KKS·2024년 1월 1일
0

Java

목록 보기
1/6

본 포스팅의 목적

  • 자료구조의 가장 기본이 되는 배열에 대해서 핵심적인 내용을 정리해보자.
  • 배열을 시작으로 ArrayList, HashSet, HashMap 등 CollectionFramework의 기초를 준비한다.

배열의 정의

  • 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것.

배열의 생성 및 초기화

//방법1. 배열 생성 후, 초기화
//따로 초기화를 해주지 않는다면, int형의 기본값인 0으로 초기화된다.
int[] arr = new int[5];
arr[0] = 1;
arr[1] = 2;
arr[2] = 3;
arr[3] = 4;
arr[4] = 5;

//방법2. 배열 생성과 동시에 원하는 값으로 초기화
int[] arr = {1, 2, 3, 4, 5};

메모리에서의 구조

  • 참조변수 arr에는 배열이 생성된 주소값이 저장된다.
  • 따라서, 참조변수를 통해 배열을 다룬다.

배열이름(참조변수).length

//배열의 길이를 알 수 있다.
int[] arr = {1, 2, 3, 4, 5};
System.out.println(arr.length); //5

java.util.Arrays클래스를 활용한 배열의 출력

  • Arrays클래스의 toString()메서드를 활용하면, 배열의 모든 요소를 문자열로 만들어서 반환한다.
int[] arr = {1, 2, 3, 4, 5};
System.out.println(Arrays.toString(arr)); //[1, 2, 3, 4, 5]

java.util.Arrays클래스의 주요 메서드

  • Arrays클래스는 배열을 다루는데 유용한 메서드를 제공한다.
  • toString() : 배열의 모든 요소를 문자열로 출력(단, 1차원 배열).
  • equals() : 두 배열에 저장된 모든 요소를 비교해서 같으면 true, 다르면 false 반환.
  • copyOf() : 특정 배열의 index 0부터, 원하는 index까지 배열을 복사해서 반환.
  • copyOfRange() : 특정 배열의 index 범위를 지정하여 배열을 복사해서 반환.
  • sort() : 특정 배열을 오름차순으로 정렬한다. 반환값은 없다.

String배열

  • 배열의 타입이 String인 경우에도 int배열의 선언, 생성방법과 동일하다.
  • 단, String타입은 참조형 타입이므로 배열 생성 시 기본값인 null로 초기화된다.
String[] name = new String[3];
System.out.println(name[0]); //null
System.out.println(name[1]); //null
System.out.println(name[2]); //null

//배열 생성과 동시에 초기화
String[] name = {"사과", "딸기", "포도"};
  • String 배열이 생성되고, 문자열로 초기화된 구조를 그림으로 나타내면 아래와 같다.

  • 하지만, String 타입은 참조형 타입이므로 이는 정확한 구조는 아니다.

  • 참조형 변수에는 객체의 주소값이 저장되므로, 정확히 말하자면 String 객체를 참조하는 참조변수의 배열이 생성되고, 각각은 String 객체를 가리키고 있음을 알 수 있다.

객체 배열

TV[] tvArr = new TV[3];
tvArr[0] = new TV();
tvArr[1] = new TV();
tvArr[2] = new TV();

TV[] tvArr = {new TV(), new TV(), new TV()};

참고문헌

  • 자바의 정석 3판 기초편
profile
공부하고 이해한 내용들을 직접 그림과 표를 그리면서 정리해보는 공간입니다.🤗

0개의 댓글