[JAVA] Array, List, ArrayList 개념 정리
2023. 10. 23. 13:38ㆍJAVA
알고리즘 문제를 풀다 보면 중간중간 사용방법을 까먹고 다시 찾아보게 된다. 파이썬으로 할때와는 다르게 배열과 리스트의 구분이 명확히 되어있고 사용법 또한 다르다. (배열이라는 개념이 없음)
배열 (Array)
- 배열은 고정된 크기의 데이터 구조이다. 한번 생성 후 크기 변경이 불가능하다.
- 배열은 기본 데이터 유형 또는 객체를 저장해서 사용할 수 있고 해당 배열에는 동일한 유형의 요소들이 들어가야 한다.
- 배열의 요소에 직접 액세스 할 수 있으며 인덱스를 이용해 특정 요소에 접근 가능하다.
- 배열의 크기를 변경하려면 새로운 배열을 생성해 데이터를 복사해 할당해야 한다.
// 배열을 선언하고 크기를 지정
int[] myArray = new int[5]; // 크기가 5인 정수형 배열을 생성
// 배열에 값 할당
myArray[0] = 10;
myArray[1] = 20;
myArray[2] = 30;
myArray[3] = 40;
myArray[4] = 50;
// 배열 값 읽기
int value = myArray[2]; // value에는 30이 저장됨
// 배열 크기 확인
int size = myArray.length; // size에는 배열의 크기인 5가 저장됨
// 오름차순 정렬
Arrays.sort(myArray);
// 내림차순 정렬
Arrays.sort(myArray, Collections.reverseOrder());
// 배열 값 교체
myArray[0] = 4;
리스트 (List)
- 리스트는 동적 크기의 데이터 구조로 크기를 동적으로 조절할 수 있다.
- 리스트는 객체를 저장하는데 사용되며, 요소들이 다양한 유형일 수 있다.
- 리스트 인터페이스는 자바에서 제공되고, ArrayList, LinkedList 등이 있다.
- 리스트는 요소를 추가, 삭제, 검색 및 정렬이 가능한 메서드들을 제공한다.
// ArrayList를 생성하고 값을 할당
ArrayList<Integer> arrayList = new ArrayList<>();
arrayList.add(10);
arrayList.add(20);
arrayList.add(30);
arrayList.add(40);
// 인덱스 1에 15값 추가 20 앞에 생성
arrayList.add(1, 15);
// 인덱스 1에 있는 요소 삭제 (20 삭제)
arrayList.remove(1);
// 값이 30인 요소 삭제
arrayList.remove(Integer.valueOf(30));
// 값 20의 인덱스 검색 (1 반환)
int index = arrayList.indexOf(20);
// 오름차순 정렬
Collections.sort(arrayList);
// 내림차순 정렬
Collections.sort(arrayList, Collections.reverseOrder());
// ArrayList를 배열로 변환
Integer[] array = arrayList.toArray(new Integer[0]);
// 배열 출력
for (Integer value : array) {
System.out.println(value);
}
'JAVA' 카테고리의 다른 글
LinkedList, Stack, Queue, Deque, PriorityQueue 사용법 정리 (0) | 2024.07.04 |
---|---|
[JAVA] 배열, ArrayList 내림차순, 오름차순 정렬 (0) | 2023.12.10 |
[JAVA] HashMap, HashSet, TreeMap, TreeSet 사용 방법 (0) | 2023.12.02 |
[JAVA] 특정 문자열 제거하기, 연속된 문자열 (0) | 2023.11.12 |
[JAVA] 약수 구하기 (2) | 2023.10.23 |