Java에서 List와 ArrayList는 모두 객체 컬렉션을 생성하는 데 널리 사용됩니다. 그러나 둘 사이에는 미묘하지만 중요한 차이점이 있습니다.
제시된 질문은 (1)과 (2)가 서로 바꿔서 사용할 수 있는지 여부를 묻습니다.
(1) List<?> myList = new ArrayList<?>(); (2) ArrayList<?> myList = new ArrayList<?>();
대답은 (1)이 (2)보다 일반적으로 선호된다는 것입니다.
(1)을 선호하는 이유는 인터페이스 코딩 및 캡슐화 원리 때문입니다. List는 인터페이스이고 ArrayList는 해당 인터페이스의 특정 구현입니다.
myList를 List>로 선언하면 List 인터페이스(예: LinkedList, Vector)의 구현을 할당할 수 있습니다. 이러한 유연성을 통해 런타임 시 애플리케이션에 가장 적합한 구현을 선택할 수 있습니다.
반대로 myList를 ArrayList>로 선언하면 ArrayList 구현에 구체적으로 바인딩됩니다. 이로 인해 나중에 구현을 변경할 수 있는 능력이 제한됩니다.
다음 예를 고려하세요.
List<Integer> myList = new LinkedList<Integer>();
처음에는 LinkedList 구현으로 시작할 수 있습니다. 목록 인터페이스. 그러나 ArrayList와 같은 보다 효율적인 구현이 더 적합한 성능 병목 현상이 발생한다고 가정해 보십시오.
이 경우 코드베이스의 다른 부분에 영향을 주지 않고 LinkedList를 ArrayList로 쉽게 교체할 수 있습니다. ArrayList
위 내용은 Java의 목록과 ArrayList: 언제 어느 것을 사용해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!