Pole vs. Kolekce

Místo pro dotazy a rady ohledně programovacích jazyků (C++, C#, PHP, ASP, Javascript, VBS..) a tvorby webových stránek

Moderátor: Mods_senior

Odpovědět
Fantomas
Level 2
Level 2
Příspěvky: 163
Registrován: 24 říj 2012 19:45

Pole vs. Kolekce

Příspěvek od Fantomas »

Ahoj,

ve škole jsem dostal domácí úkol, k jeho vypracování však musím pochopit zadání. Není to tak snadné, nemohl by mi někdo vysvětlit, co tímto měl učitel na mysli?

Vytvořte třídu Calculators, která si bude udržovat seznam referencí na instance Calculator, tedy na objekty implementující toto rozhraní. Údržba spočívá v implementaci veřejných metod void add(Calculator calculator), void remove(Calculator calculator) a void clear(). Seznam implementujte podle vlastního uvážení jako pole nebo kolekci. (Tip: kolekce mají stejnojmenné metody již k dispozici.)

Jak bych měl tyto metody dát do kolekce nebo pole? To jsem nikdy nedělal a myslím, že to ani nejde, ale to by nebylo pak v zadání...

Dali byste mi prosím příklad, jak je implementovat?
Děkuji mockrát.
Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: 20 srp 2008 14:02
Bydliště: Brno
Kontaktovat uživatele:

Re: Pole vs. Kolekce

Příspěvek od CZechBoY »

Zdar,
s čím si konkrétně nevíš rady?
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
Fantomas
Level 2
Level 2
Příspěvky: 163
Registrován: 24 říj 2012 19:45

Re: Pole vs. Kolekce

Příspěvek od Fantomas »

nechápu, jak seznam obsahující metody dát do pole nebo kolekce
Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: 20 srp 2008 14:02
Bydliště: Brno
Kontaktovat uživatele:

Re: Pole vs. Kolekce

Příspěvek od CZechBoY »

Seznam = kolekce, pole je součást kolekce, akorát kolekce je dynamická a můžeš do ní dávat další prvky přes Collection.Add a tak ;) viz google
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
Fantomas
Level 2
Level 2
Příspěvky: 163
Registrován: 24 říj 2012 19:45

Re: Pole vs. Kolekce

Příspěvek od Fantomas »

ano to chápu a to je úplně základní poznatek, ale nechápu, jak deklarovat do ArrayListu metodu, něco jako:

Kód: Vybrat vše

ArrayList <Object> seznam = new ArrayList<>();
seznam.add(void add(Calculator calculator));
seznam.add(void clear() );


To je přeci nesmysl a Netbeany mi to také nepustí... Jak tedy vypadá syntaxe při přidávání metody do ArrayListu? Je vhodný ArrayList nebo dát HashSet či HashMap? Není to lepší dát do pole?
Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: 20 srp 2008 14:02
Bydliště: Brno
Kontaktovat uživatele:

Re: Pole vs. Kolekce

Příspěvek od CZechBoY »

Dej si to do čeho chceš, však to je taky v zadání...
proč tam píšeš void a add? nechápu...
Co to je za jazyk?
Většinou se metody píšou PascalCasem, takže bych zkusil první písmeno dát velký ;-)
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
Fantomas
Level 2
Level 2
Příspěvky: 163
Registrován: 24 říj 2012 19:45

Re: Pole vs. Kolekce

Příspěvek od Fantomas »

No je to v jazyku Java, to jsem zapomněl zmínit, za což se velice omlouvám.
Nenávratové metody např. void add(Calculator calculator) s parametrem Calculator (rozhraní, které má vlastnost "počítej").

Založil jsem si kolekci a pak jsem do ní přidával metody, ale to je asi blbost... Právě proto se ptám, jak dát buď do kolekce či do pole metodu (umím dávat pouze jednoduché datové typy do těchto objektů - např. int[] pole = new int {1,2,1}; ale metody jsem nikdy nedával).
Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: 20 srp 2008 14:02
Bydliště: Brno
Kontaktovat uživatele:

Re: Pole vs. Kolekce

Příspěvek od CZechBoY »

Nechápu proč chceš dávat do kolekce metodu, myslím, že to jde ;-)
Máš tam ukládat jen nějaký objekty ne? Kolekce.Add(this); třeba
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
Fantomas
Level 2
Level 2
Příspěvky: 163
Registrován: 24 říj 2012 19:45

Re: Pole vs. Kolekce

Příspěvek od Fantomas »

Údržba spočívá v implementaci veřejných metod void add(Calculator calculator), void remove(Calculator calculator) a void clear(). Seznam implementujte podle vlastního uvážení jako pole nebo kolekci.

Musím nějak implementovat výše uvedené metody v kolekci či v poli... ale nevím jak by to vypadalo. Už jsem prošel hodně stránek, ale nikde nic takovýho neřešili... :cry:
Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: 20 srp 2008 14:02
Bydliště: Brno
Kontaktovat uživatele:

Re: Pole vs. Kolekce

Příspěvek od CZechBoY »

To se má implementovat ve třídě Calculators ne?
Prostě napíšeš

Kód: Vybrat vše

void add(Calculator calculator) {this.items.Add(calculator);} 
nazdar, hotovo :D
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
Odpovědět

Zpět na „Programování a tvorba webu“