코딩항해기

[JAVA] 배열 (+index, Arrays) 본문

JAVA

[JAVA] 배열 (+index, Arrays)

miniBcake 2024. 7. 17. 09:07

 

배열

Array

 

같은 자료형의 여러 데이터를 저장할 수 있는 자료구조

 


 

배열 

같은 자료형의 변수를 지정하여 여러 데이터를 저장할 수 있는 저장공간이다.

이렇게 여러 데이터를 담을 수 있는 구조를 자료구조(data structure)라고 한다.

배열에 담아 값을 저장하면 heap메모리에 선언된 크기와 값만큼 독립된 공간이 연속적으로 생성된다.

 

 

배열 생성 조건

배열을 만들기 위해서는 3가지 조건이 필요하다.

  1. 저장할 데이터들의 타입이 모두 한 가지로 일치해야한다.
  2. 저장할 데이터들의 크기(길이)를 알아야한다.
  3. 배열에 저장할 데이터들은 서로 관련성이 있어야한다.
    (ex. String[] 꽃 = {"개나리", "장미", "국화"};)

 

배열 선언

int[] arr;
//자료형[] 변수명;

 

 

배열 생성

//크기를 아는 경우
int[] arr = new int[크기];

//선언할 때 들어갈 값을 아는 경우
int[] arr = {1, 2, 3, 4, 5};

//선언하고 나서 나중에 값을 아는 경우
int[] arr; //선언
arr = new int[] {1, 2, 3, 4, 5};

 

 

배열의 길이

배열의 길이는 String처럼 length로 구할 수 있다. 

다만 String은 문자열.length()로 구하지만 배열은 배열.length로 배열의 길이를 구하게된다.

 

 

배열의 초기값

배열은 생성과 동시에 데이터 자료형 별로 기본값이 주어진다.

정수형 0
실수형 0.0
문자형 " "
객체형 null

 

 

배열의 사용

배열의 경우, 바로 배열을 출력하게 되면 배열의 시작 주소값이 나오게 된다. (해시코드값이 출력됨)

따라서 배열을 사용할 때에는 for문, for-each문을 사용하여 값을 순회하며 하나하나 값을 꺼내 사용하거나,

인덱스(index)라는 것을 사용하여 값을 꺼내 사용하게 된다.

int[] arr = {1, 2, 3};

System.out.println(arr);
//주소값이 출력된다.

System.out.println(arr[0]);
//arr배열의 가장 첫번째 값, 0번째 자리에 있는 값인 1이 출력된다.
//index사용

for(int i : arr){
	System.out.println(i);
}
//arr배열이 가진 값이 순서대로 출력된다.

 

 

 


인덱스 index

index설명 이미지

 

배열은  heap메모리에 선언된 크기와 값만큼 독립된 공간이 연속적으로 생성되기 때문에 index를 사용할 수 있다.

index는 배열의 나열된 공간 위치를 알려주는 위치값이다. 배열의 길이만큼 존재하고 0번부터 차례로 붙게된다.

 

 


 

Arrays

Arrays 클래스는 배열의 복사, 항목 정렬, 항목 검색 등 배열을 보다 간편하게 다루기 위한 다양한 메서드를 제공한다.

Arrays의 메서드를 사용할 때에는 Arrays의 메서드라는 것을 알려주기 위해 메서드 앞에 'Arrays.'을 붙인다.

 

 

Arrays 메서드

메서드 기능 반환타입
asList(배열) 배열을 리스트로 변환 List<타입>
binarySearch(배열, key) 정렬된 배열에서 이진 검색 수행 int
copyOf(배열, newLength) 배열을 복사하여 새로운 길이의 배열 생성 배열
copyOfRange(배열, from, to) 배열의 특정 범위를 복사하여 새로운 배열 생성 배열
deepEquals(배열1, 배열2) 두 배열의 깊은 비교 수행 boolean
deepHashCode(배열) 배열의 깊은 해시 코드 생성 int
deepToString(배열) 배열의 깊은 문자열 표현 String
equals(배열1, 배열2) 두 배열의 얕은 비교 수행 boolean
fill(배열, 값) 배열의 모든 요소를 특정 값으로 채움 void
hashCode(배열) 배열의 해시 코드 생성 int
parallelPrefix(배열, 연산자) 배열의 요소에 병렬 prefix 연산 적용 void
parallelSetAll(배열, 생성자) 배열의 모든 요소에 병렬로 생성된 값 할당 void
parallelSort(배열) 배열의 요소를 병렬로 정렬 void
setAll(배열, 생성자) 배열의 모든 요소에 생성된 값 할당 void
sort(배열) 배열의 요소를 정렬 void
sort(배열, Comparator) 배열의 요소를 주어진 비교자로 정렬 void
spliterator(배열) 배열의 spliterator 생성 Spliterator<타입>
stream(배열) 배열의 요소를 스트림으로 변환 타입Stream
toString(배열) 배열의 문자열 표현 String