NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
Mezinárodní den IT společnosti je tady! Pouze nyní můžeš získat 90 % extra kreditů při nákupu od 1199 kreditů s promo kódem AJTACI90. Tak neváhej!

Diskuze – Lekce 3 - Seznam (List) pomocí pole v Javě

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
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.

 
Odpovědět
14.7.2019 15:39
Avatar
Atrament
Člen
Avatar
Odpovídá 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

 
Odpovědět
14.7.2019 16:06
Avatar
ishei
Člen
Avatar
ishei:14.7.2019 16:08

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

 
Odpovědět
14.7.2019 16:08
Avatar
Atrament
Člen
Avatar
Odpovídá 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

 
Odpovědět
14.7.2019 16:13
Avatar
ishei
Člen
Avatar
Odpovídá na Atrament
ishei:14.7.2019 16:19

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

 
Odpovědět
14.7.2019 16:19
Avatar
Atrament
Člen
Avatar
Odpovídá na ishei
Atrament:14.7.2019 16:28

Aha tak to je potom jasné, to se stane

Editováno 14.7.2019 16:28
 
Odpovědět
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.

 
Odpovědět
20.12.2020 11:45
Avatar
Odpovídá na asifa.hvshthvg
Petr Štechmüller:20.12.2020 11:59

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

Odpovědět
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?

 
Odpovědět
5.5.2021 13:35
Avatar
DarkCoder
Člen
Avatar
Odpovídá 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).

Odpovědět
5.5.2021 15:08
"I ta nejlepší poučka postrádá na významu, není-li patřičně předána." - DarkCoder
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 10 zpráv z 21.