2013-02-20 5 views
5

답글할당의 ArrayList는

+0

어제와 오늘 같은 질문 (동일한 텍스트조차도)을 보았습니다 (그러나 찾을 수는 없습니다). –

+0

Oh i C 고마워요 –

+0

@LuiggiMendoza. 나. –

답변

3

거의 항상 두 번째 것이 첫 번째 것보다 선호됩니다. 두 번째는 코드의 나머지 부분에 영향을 미치지 않고 List의 구현을 (예 : LinkedList으로) 변경할 수 있다는 이점이 있습니다. 이는 ArrayList을으로 변경해야 할뿐만 아니라 ArrayList 특정 방법을 사용했기 때문에 ArrayList으로 처리하기가 어려울뿐만 아니라 ArrayListLinkedList으로 변경해야 할뿐만 아니라 때문일 수도 있습니다.

2

에 대해 다음

ArrayList<String> arrName = new ArrayList<String>(); 
List<String>  arrName = new ArrayList<String>(); 

덕분에 두 줄 사이에 어떤 차이가 후자는 일반적으로 한 경우에만 이후에 List 인터페이스를 필요로하는 것이 좋습니다 나열합니다. 이를 "프로그래밍이 아니라 인터페이스로 프로그래밍"이라고합니다. 그들 사이의 세부적인 차이로

는 I에 유래에 또 다른 질문에 대답했다 : 그것은 인터페이스 뒤에 구현을 숨 깁니다으로 The difference between "C c = new C()" and "A c = new C()" when C is a subclass of A in Java

2

두 번째 방법은 일반적으로 선호 하나입니다.

이것은 나중에 요구 사항이 변경되고 List 인터페이스의 또 다른 구현이 필요할 경우 한 줄의 코드 만 변경할 수 있다는 것을 의미하며 클래스가 아닌 인터페이스로 코딩 했으므로 다른 모든 코드는 계속 작동합니다. .

2

가 인터페이스 및 표준 라이브러리 '방법 매개 변수에서 볼 수 있으므로 일반적으로 List<K>입니다 가능하면 특정 구현 ArrayList 나처럼 전달 될 수 있도록,이 정도의 차이는 그 자체가 아니라 List가 사용되어야한다 LinkedList.

2

가능하면 인터페이스 뒤에 특정 구현을 숨기려고합니다. see this