Array 비슷한 용어 정리
Arrays클래스
java.util.Arrays 클래스는 배열을 다루기 위한 다양한 정적 메서드를 제공한다.
이 클래스는 배열의 정렬, 검색, 비교 및 변환과 관련된 메서드를 포함하고 있다.
주요 메서드:
sort(): 배열을 정렬
binarySearch(): 배열에서 이진 검색을 수행한다.
equals(): 두 배열이 동일한지 비교한다.
fill(): 배열을 특정 값으로 채운다.
asList(): 배열을 List로 변환한다.
int[] numbers = {5, 3, 8, 1};
Arrays.sort(numbers);
System.out.println(Arrays.toString(numbers)); // [1, 3, 5, 8]
ArrayList 클래스
java.util.ArrayList는 List 인터페이스를 구현한 가변 크기의 배열이다.
요소를 추가하거나 삭제할 수 있으며, 배열의 크기는 필요에 따라 자동으로 조정된다.
ArrayList는 배열과 유사한 방식으로 인덱스를 통해 요소에 접근할 수 있다.
특징:
요소의 순서가 유지된다.
빠른 랜덤 접근이 가능하지만, 중간 삽입 및 삭제는 상대적으로 느리다.
초기 크기를 지정하지 않으면 기본적으로 10의 용량을 갖는다.
ArrayList<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
System.out.println(list); // [Apple, Banana]
Array
연속적인 메모리에서 같은 종류의 아이템들을 저장할 수 있는 자료구조.
Array는 자바의 기본 배열을 의미합니다. 고정된 크기를 가지며, 크기를 변경할 수 없다.
배열은 동일한 타입의 요소를 저장하며, 인덱스를 통해 접근할 수 있다.
특징:
크기가 고정된다.
요소의 타입이 동일해야 한다.
빠른 랜덤 접근이 가능하다.
int[] numbers = new int[5];
numbers[0] = 1;
numbers[1] = 2;
System.out.println(numbers[0]); // 1
List 인터페이스
java.util.List는 순서가 있는 컬렉션을 나타내는 인터페이스이다.
요소의 순서가 유지되며, 중복 요소를 허용한다.
ArrayList, LinkedList 등이 List 인터페이스를 구현한다.
그 외 궁금한 점
Array(배열)와 List(리스트) 차이?
Array
연속적인 메모리에서 같은 종류의 아이템들을 저장할 수 있는 자료구조.
[ ] : 인텍스 활용가능
명확함
List
순서를 가지며 추가, 삭제, 탐색이 가능한 ADT(Abstrat Data Type)
구조의 속성과 행위만 설명하고, 내부적 구현을 알려주지 않는다.
추상적
// 구조의 속성과 행위만 설명
list.add()
list.remove()
list.get(int)
list.contaitns()
참고 게시글
[Java] DS vs. ADT (자료 구조 vs. 추상 데이터 타입)
- 그럼 List를 어떻게 구현?
방법 1. Array => (구현) ArrayList 클래스
방법 2. Linked Node => (구현) LinkedList 클래스
ArrayList클래스나 LinkedList 클래스 처럼 구현하는 것을 자료구조(DS: Data Structure)라고 한다.
ADT를 구현한것이 자료구조(DS)이다.
💡 ADT
구조의 속성과 행위를 설명한다.
무엇을 할 수 있는지 O(What)
어떻게 할 수 있는지는 알려주지 않는다.(How X)
- Array를 List로 변환
Arrays 클래스의 asList() 메서드를 사용하여 배열을 List로 변환할 수 있다.
import java.util.Arrays;
import java.util.List;
public class ArraysToListExample {
public static void main(String[] args) {
String[] array = {"Apple", "Banana", "Cherry"};
List<String> list = Arrays.asList(array);
System.out.println(list); // [Apple, Banana, Cherry]
}
}
결론
Array는 List를 구현하는 방법 중 하나인 자료구조이다.
Array를 구현하는 것 중에는 LinkedArray가 있다.
List와 ArrayList 차이?
List인터페이스 안에 ArrayList클래스가 들어있다.
Arrays클래스와 ArrayList클래스 차이?
이 둘은 서로 연관은 있으나, 직접적인 관계가 있는 것은 아니다.
Arrays클래스는 배열을 조작하기 위한 유칠리티 메스드를 제공한다.
(배열의 정렬, 검색, 비교 및 변환과 관련된 메서드를 포함하고 있다.)
int[] numbers = {5, 3, 8, 1};
Arrays.sort(numbers);
System.out.println(Arrays.toString(numbers)); // [1, 3, 5, 8]
ArrayList클래스는 List 인터페이스를 구현한 가변 크기의 배열을 구현한 컬렉션 클래스이다.
요소를 추가하거나 삭제할 수 있으며, 배열의 크기는 필요에 따라 자동으로 조정한다.
ArrayList<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
System.out.println(list); // [Apple, Banana]
참고링크
[JAVA/자료구조] 자바 컬렉션 프레임워크(java collection framework) 총정리
[JAVA 자료구조] List Interface (리스트 인터페이스)
https://www.youtube.com/watch?v=2zF7PpvDwFg
'공부 > Java' 카테고리의 다른 글
[Java] Iterator와 Comparable (0) | 2024.05.21 |
---|---|
[Java] DS vs. ADT (자료 구조 vs. 추상 데이터 타입) (0) | 2024.05.17 |
[Java] Object 클래스 (0) | 2024.03.30 |
[Java] 접근제어자 public, protected, default, private (0) | 2024.03.29 |
[Java] 예외처리 (0) | 2024.03.29 |