답변
거의 항상 두 번째 것이 첫 번째 것보다 선호됩니다. 두 번째는 코드의 나머지 부분에 영향을 미치지 않고 List
의 구현을 (예 : LinkedList
으로) 변경할 수 있다는 이점이 있습니다. 이는 ArrayList
을으로 변경해야 할뿐만 아니라 ArrayList
특정 방법을 사용했기 때문에 ArrayList
으로 처리하기가 어려울뿐만 아니라 ArrayList
을 LinkedList
으로 변경해야 할뿐만 아니라 때문일 수도 있습니다.
에 대해 다음
ArrayList<String> arrName = new ArrayList<String>();
List<String> arrName = new ArrayList<String>();
덕분에 두 줄 사이에 어떤 차이가 후자는 일반적으로 한 경우에만 이후에 List
인터페이스를 필요로하는 것이 좋습니다 나열합니다. 이를 "프로그래밍이 아니라 인터페이스로 프로그래밍"이라고합니다. 그들 사이의 세부적인 차이로
두 번째 방법은 일반적으로 선호 하나입니다.
이것은 나중에 요구 사항이 변경되고 List
인터페이스의 또 다른 구현이 필요할 경우 한 줄의 코드 만 변경할 수 있다는 것을 의미하며 클래스가 아닌 인터페이스로 코딩 했으므로 다른 모든 코드는 계속 작동합니다. .
가 인터페이스 및 표준 라이브러리 '방법 매개 변수에서 볼 수 있으므로 일반적으로 List<K>
입니다 가능하면 특정 구현 ArrayList
나처럼 전달 될 수 있도록,이 정도의 차이는 그 자체가 아니라 List
가 사용되어야한다 LinkedList
.
가능하면 인터페이스 뒤에 특정 구현을 숨기려고합니다. see this
두 번째는 Program to Interface
의 예이며 선호하는 방법입니다.
자세한 내용은 What does it mean to "program to an interface"?
- 1. 변환의 ArrayList는
- 2. 패스의 ArrayList는
- 3. 의 ArrayList는
- 4. 의 ArrayList는
- 5. 의 ArrayList는
- 6. JSP로의 ArrayList는
- 7. 의 ArrayList는 PreparedStatement의
- 8. 추가의 ArrayList는 ArrayListArrayList하는
- 9. Arraylist는 Array를 사용합니까?
- 10. ASP.NET 캐스트의 ArrayList는
- 11. 의 ArrayList는 값이
- 12. 정적 ArrayList는 얼마나 비쌉니까?
- 13. 자바 표시의 ArrayList는
- 14. 비 블로킹 할당의 자막
- 15. 객체 할당의 혼동스러운 행동
- 16. 대리인 재 할당의 영향
- 17. 힙 메모리 할당의 예외
- 18. 할당의 INT ***는 int로 [] [] []
- 19. 메모리 할당의 이상한 동작
- 20. 할당의 파이썬 정렬 (스타일)
- 21. Python에서 체인 할당의 상태
- 22. 2D 배열 할당의 성능
- 23. 속성 정의와 할당의 차이점
- 24. 메모리 할당의 C++ 오류
- 25. 메모리 할당의 운동
- 26. CUDA 할당의 SIGSEGV
- 27. ListView 할당의 성능 향상
- 28. 무엇이 malloc과 할당의 차이입니까
- 29. Java 배열 할당의 차이점
- 30. Arraylist는 타입 세이프인가 강건한 타이프인가?
어제와 오늘 같은 질문 (동일한 텍스트조차도)을 보았습니다 (그러나 찾을 수는 없습니다). –
Oh i C 고마워요 –
@LuiggiMendoza. 나. –