IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

Diskusia – 3. diel - Zoznam (list) pomocou poľa v Jave

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Avatar
ishei
Člen
Avatar
ishei:14.7.2019 15:39

Muze to byt zmenami ve verzich, ale tohle Java nepripusti:

List<Integer> list = new ArrayList<>();

s oduvodnenim, ze typ List neni genericky a tak jej nelze parametrizovat jako Integer.

 
Odpovedať
14.7.2019 15:39
Avatar
Atrament
Člen IT Redactor Gang
Avatar
Odpovedá na ishei
Atrament:14.7.2019 16:06

Tohle Java připustí už dobrých pět let, říká se tomu diamond operator a je to v javě od verze 7

 
Odpovedať
14.7.2019 16:06
Avatar
ishei
Člen
Avatar
ishei:14.7.2019 16:08

Nejde o cast ArrayList<>(), ale o cast List<Integer>.

 
Odpovedať
14.7.2019 16:08
Avatar
Atrament
Člen IT Redactor Gang
Avatar
Odpovedá na ishei
Atrament:14.7.2019 16:13

Aha no ale i tak nevidím problém, List je generický, nevím kde jsi vzal že není.
https://docs.oracle.com/…il/List.html

 
Odpovedať
14.7.2019 16:13
Avatar
ishei
Člen
Avatar
Odpovedá na Atrament
ishei:14.7.2019 16:19

Automaticky se naimportoval java.awt.List misto java.util.List. Omluva za mystifikaci.

 
Odpovedať
14.7.2019 16:19
Avatar
Atrament
Člen IT Redactor Gang
Avatar
Odpovedá na ishei
Atrament:14.7.2019 16:28

Aha tak to je potom jasné, to se stane

Editované 14.7.2019 16:28
 
Odpovedať
14.7.2019 16:28
Avatar
asifa.hvshthvg:20.12.2020 11:45

Rozhraní List ani jeho implementace ArrayList neobsahuje metodu count(). Pro zjištění počtu prvků v kolekci je metoda size(). Metoda count() je terminální metoda na streamu.

 
Odpovedať
20.12.2020 11:45
Avatar
Odpovedá na asifa.hvshthvg
Petr Štechmüller:20.12.2020 11:59

Dobrý postřeh :-P Opravím.

Odpovedať
20.12.2020 11:59
Pokud spolu kód a komentář nekorespondují, budou patrně oba chybné
Avatar
Jan Křížek:5.5.2021 13:35

Větu

Pokud tedy chceme např. přistoupit na 5. prvek, jen vstoupíme tam, kde pole začíná, a poté odskočíme 4 násobky velikosti typu (zde intu) dále.

chápu jen do části kde pole začíná, zbytek věty mi nedává smysl.
Může mi prosím tu poslední část někdo vysvětlit?
Co je velikost typu?
Jak jako odskočíme 4 násobky?

 
Odpovedať
5.5.2021 13:35
Avatar
DarkCoder
Člen
Avatar
Odpovedá na Jan Křížek
DarkCoder:5.5.2021 15:08

Velikost typu je hodnota, která udává, kolik místa v paměti by zabrala proměnná tohoto typu. Např. znaková proměnná zabírá v paměti 1 byte (8bitů), celočíselná proměnná typu int zabírá v paměti 4 byty (32bitů).

Adresa N-tého prvku je dána vztahem:

adresa N-tého prvku = adresa prvního prvku + (N-1) * velikost typu

adresa prvního prvku pole je označována jako bázová adresa pole

Proto pokud máme pole typu int (velikost typu int je 4) a první prvek pole (index 0) leží například na adrese 100 (100 až 103), pak 5. prvek leží na adrese:

adresa 5. prvku = 100 + (5-1) * 4 = 116

jelikož int zabírá v paměti 4 byty, tak 5. prvek (index 4) leží na adresách (116-119).

Proto výpočet adresy 5. prvku - adresa 5. prvku = 100 + (5-1) * 4 = 116 lze slovně vyjádřit tak jak bylo napsáno - kde pole začíná (100) a poté odskočit 4 násobek (5-1) velikosti typu (4).

Odpovedať
5.5.2021 15:08
"I ta nejlepší poučka postrádá na významu, není-li patřičně předána." - DarkCoder
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zatiaľ nikto nevložil komentár - buď prvý!