코디잉
01_배열 본문
- 배열: 같은 자료형의 변수로 이루어짐
- 배열 변수 : 배열 본체를 『참조』하는 것
- int[] arr = new int[5];
→ arr의 자료형 : int[5] 형
→ arr 각 요소의 자료형: int 형
- 배열의 구성 요소는 자동으로 0으로 초기화됨
+) 지역 변수는 자동으로 초기화되지 않는다. (컴파일 오류 발생)
- 배열의 복사(깊은의미의 복사) : 배열이름.clone();
다차원 배열의 같은 경우 → 최상위의 1레벨만 복사 수행함.
그 아래 레벨의 배열은 서로 참조하여 공유됨
- 배열 더미 출력: Arrays.toString(arr);
- 배열 정렬 (오름차순) : Arrays.sort(arr);
java.util.Arrays;
int[] arr = { 99, 2, 100, 25, 32, 18 };
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));
// 결과
// [2, 18, 25, 32, 99, 100]
- 배열 정렬 (내림차순): Arrays.sort(arr, Collections.reverseOrder());
🔥 int[] 형 배열로 만들 시, 컴파일 오류 발생
java: no suitable method found for sort(int[],java.util.Comparator<java.lang.Object>)
method java.util.Arrays.<T>sort(T[],java.util.Comparator<? super T>) is not applicable
Collections.reverseOrder()는 java.util.Collections에서 Comparator를 기본으로 제공해주고 있다.
자바 Generics는 Primitive type에서는 작동하지 않는다고 한다.
그래서 int → Integer 로 써줘야 함!!
//int[] arr = { 34, 12, 92, 2, 77, 25 };
Integer[] arr = { 34, 12, 92, 2, 77, 25 };
Arrays.sort(arr, Collections.reverseOrder());
System.out.println(Arrays.toString(arr));
// 결과
// [92, 77, 34, 25, 12, 2]
- 다차원 배열 : 행이 다른 요소가 연속으로 놓이지 않음!
ex) arr[0][3] 뒤에 x[1][0]이 바로 저장되어 있는게 아님
🔥 최댓값 구할 때.... 항상 아래와 같이 습관처럼 int i = 0; 으로 작성해왔는데...
max = arr[0];
for (int i = 0; i < arr.length; i++) {
:
첫 번째 요소와는 비교할 필요 없으니까 int i = 1; 로 작성하면 된다,,,,,,!!!!!!
- 배열은 고정 길이
- ArrayList: 가변 길이 배열 자료구조
// ArrayList 선언 : 아래 3개 다 가능
List<Integer> list1 = new ArrayList<Integer>();
ArrayList<Integer> list2 = new ArrayList<Integer>();
ArrayList<Integer> list3 = new ArrayList<>(); // JDK 1.7 이상부터 가능
// 추가
list1.add(1);
// 값 가져오기
System.out.println(list1.get(0)); // 1
// 값 설정하기
list1.set(0, 3);
System.out.println(list1.get(0)); // 3
// 제거
list1.remove(0);
//System.out.println(list1.get(0));
//--==>> Runtime Error: IndexOutOfBoundsException
// 길이 확인
System.out.println(list1.size()); // 0
'자료구조&알고리즘 > 이론공부' 카테고리의 다른 글
06_재귀 알고리즘 (0) | 2022.08.26 |
---|---|
05_큐(queue) (0) | 2022.08.19 |
04_스택(stack) (0) | 2022.08.19 |
03_이진 검색(binary search) (0) | 2022.08.19 |
02_선형 검색(linear search) (0) | 2022.08.19 |