Type List vs type ArrayList w Javie?

Rozważmy dwa przypadki:

1) List<?> myList = new ArrayList<?>();

(2) ArrayList<?> myList = new ArrayList<?>();

Rozumiem, że dzięki (1) implementacje interfejsu List można zamieniać. Wygląda na to, że (1) jest zwykle używany w aplikacji bez względu na potrzebę (ja zawsze tego używam). Zastanawiam się, czy ktoś używa (2)? Ponadto, jak często (i czy mogę uzyskać przykład) sytuacja faktycznie wymaga użycia (1) powyżej (2)?

1 odpowiedź

Prawie zawsze pierwszy przypadek jest preferowany nad drugim przypadkiem. Pierwszy ma tę zaletę, że implementacja Listy może się zmienić (na przykład na LinkedList), bez wpływu na resztę kodu. Będzie to trudne zadanie do wykonania z ArrayList, nie tylko dlatego, że będziesz musiał wszędzie zmienić ArrayList na LinkedList, ale także dlatego, że mogłeś użyć metod specyficznych dla ArrayList.

polecam zapoznać się z tutorialem odnośnie implementacji list: http://java.sun.com/docs/books/tutorial/collections/implementations/list.html

Twoja odpowiedź

Zaloguj się aby odpowiedzieć.

Operiada

Operiada to polskojęzyczne forum informatyczne działające na zasadzie pytań i odpowiedzi.

Obserwowane tagi

Zaloguj się aby obserwować tagi.