코딩항해기
[JAVA] 배열 (+index, Arrays) 본문
배열
Array
같은 자료형의 여러 데이터를 저장할 수 있는 자료구조
배열
같은 자료형의 변수를 지정하여 여러 데이터를 저장할 수 있는 저장공간이다.
이렇게 여러 데이터를 담을 수 있는 구조를 자료구조(data structure)라고 한다.
배열에 담아 값을 저장하면 heap메모리에 선언된 크기와 값만큼 독립된 공간이 연속적으로 생성된다.
배열 생성 조건
배열을 만들기 위해서는 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
배열은 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 |
'JAVA' 카테고리의 다른 글
[JAVA] 상속 (+super, super()) (0) | 2024.07.21 |
---|---|
[JAVA] 생성자 (+this, this()) (0) | 2024.07.20 |
[JAVA] 컬렉션 프레임워크 (+Generic, Iterator) (0) | 2024.07.15 |
[JAVA] 연산자 (0) | 2024.07.14 |
[JAVA] 인터페이스 (+Adapter, 마커인터페이스) (0) | 2024.07.13 |