Object[] 와 ArrayList 의 차이
에를 들어 Partner라는 클래스가 있을 때
Partner[] p = new ArrayList와 같은 코드는 컴파일 에러가 발생합니다.
이유는 ArrayList는 Java의 컬렉션(List) 타입이고, Partner[]는 배열 타입이기 때문에 서로 호환되지 않는 타입입니다.
🔍 정확한 차이점
Partner[]→ 고정된 크기의 배열ArrayList<Partner>→ 가변 크기의 리스트 (배열 기반의 컬렉션)
✅ 올바른 사용법
1. ArrayList를 사용하고 싶을 때
List<Partner> p = new ArrayList<>();
p.add(new Partner("name1"));
p.add(new Partner("name2"));
- 리스트로 선언하고 사용하는 것이 맞습니다.
- 이 방법이 대부분의 경우 더 유연하고 편리합니다.
2. ArrayList → Partner[]로 변환이 필요한 경우
List<Partner> pList = new ArrayList<>();
pList.add(new Partner("a"));
pList.add(new Partner("b"));
Partner[] pArray = pList.toArray(new Partner[0]); // 배열로 변환
⚠️ 잘못된 예시
Partner[] p = new ArrayList<>(); // ❌ 컴파일 에러: incompatible types
✅ 요약
| 목적 | 코드 |
|---|---|
ArrayList 선언 |
List<Partner> p = new ArrayList<>(); |
| 리스트 → 배열 변환 | Partner[] pArray = pList.toArray(new Partner[0]); |
배열보다 ArrayList를 사용하는 것이 일반적으로 더 안전하고 유연합니다.
다만 배열이 필요한 API와 호환하거나 성능상 이점이 필요한 경우 배열 변환을 사용하세요.