IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: List

Aktivity
Avatar
Benjibs
Člen
Avatar
Benjibs:24.6.2013 14:15

Akú výhodu má toto:

List marks = ArrayList();

oproti

ArrayList marks = ArrayList();

Dostal som sa k tomu, vraj keď využijem prvú možnosť, môžem v prípade zmeny zámeru ľahko použiť LL namiesto AL a naopak.

Je pravda, že použitie prvej možnosti nedovoľuje využitie špeicifický metód AL, resp. LL? Všeobecne, kedy je lepšie využiť prvú a kedy druhú možnosť?

Odpovědět
24.6.2013 14:15
1 + 1 = 2
Avatar
Odpovídá na Benjibs
Luboš Běhounek Satik:24.6.2013 14:29

List je v Javě pouze interface, takze do marks pak muzes nacpat jakoukoliv tridu, ktera toto rozhrani implementuje.

Prvni verze te necha pouzit jen funkce, ktere obsahuje rozhrani List, kdyby jsi pak chtel pouzit nejake funkce ArrayListu, tak musis promennou marks pretypovavat, zatimco v druhem pripade se rovnou dostanes na vsechny funkce ArrayListu.

Nahoru Odpovědět
24.6.2013 14:29
https://www.facebook.com/peasantsandcastles/
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Luboš Běhounek Satik
Kit:24.6.2013 15:58

Které že jsou ty specifické metody v ArrayList proti List?

Nahoru Odpovědět
24.6.2013 15:58
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Benjibs
Kit:24.6.2013 16:02

Všeobecně je lepší použít první možnost, pokud to jde. Tedy vlevo použít identifikátor rozhraní.

Nahoru Odpovědět
24.6.2013 16:02
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Kit
Luboš Běhounek Satik:24.6.2013 16:28

"Které že jsou ty specifické metody v ArrayList proti List?"

Myslim, ze tohle neni dulezite, zrovna tenhle pripad asi moc rozidlu mit nebude, psal jsem to obecne.

Konkretne tady treba list nema

ensureCapacity(...)
Nahoru Odpovědět
24.6.2013 16:28
https://www.facebook.com/peasantsandcastles/
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Luboš Běhounek Satik
Kit:24.6.2013 16:39

To souhlasí, LinkedList ho také nemá. Je to specifikum pro ArrayList, běžně se nepoužívá.

Obecně se má používat co nejobecnější třída nebo rozhraní, které ještě vyhovuje našim požadavkům. Občas používám přímo třídu Object, zejména pokud z objektu potřebuji pouze metodu toString() a nic víc.

Nahoru Odpovědět
24.6.2013 16:39
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.