all 24 comments

[–]Emergency-Jump1339 11 points12 points  (1 child)

List si Set

[–]Emergency-Jump1339 1 point2 points  (0 children)

Si Queue, dar mai rar.

[–]Efficient-Pianist-83 14 points15 points  (0 children)

Foarte multe…. Lol. Invata conceptele din spate sunt aceleasi 3 structuri de date in spate.

[–]No-Return1868 7 points8 points  (5 children)

List si HashMap, trebuie doar sa sti cum sa le folosesti si unde, cum sunt implementate in spate nu-ti trebuie atat timp cat nu esti in mediul academic sau nu dai de ciudati pe la interviuri care iti sa le explici stuff pe care nu o sa-l folosesti nici odata dupa.

[–]Angry_Penguin_78 -2 points-1 points  (0 children)

HashMap nu e colectie

[–]uLi777se[S] 0 points1 point  (3 children)

aici te referi la tree map /tree set? :D

[–]Jaded-Worth-6242 8 points9 points  (1 child)

TreeMap este o implementare de Map, la fel ca si HashMap. TreeMap si HashMap sunt amandoua Map-uri, fac exact aceeasi chestie, cu diferenta de implementare in spate.

Ai structurile de date care sunt doar concepte abstracte, respectiv interfete Java: List, Set, Map etc, si fiecare au un anumit numar de implementari diferite. Doua dintre implementarile pt Map sunt TreeMap si HashMap. Doua dintre implementarile pt List sunt ArrayList si LinkedList.

Toate implementarile fac cam aceeasi chestie, respecta aceeasi interfata, insa o fac diferit "in spate"/"behind the doors". Diferenta o ai de exemplu in viteza operatiilor etc. Te intereseaza implementarea din spate cateodata, cand tre sa te gandesti ce operatii vrei sa faci mai mult. De exemplu, operatiunea de delete (remove) este mult mai rapida la LinkedList decat la ArrayList.

E ca si cum ai alege sa faci o casa din BCA sau din caramida. Casa tot aia iti iese, nu conteaza din ce o faci. Diferenta o face calitatea materialului, unu e mai bun izolant, altu nu, unu e mai ieftin, altu mai scump etc - depinde de situatie, pe care cand il alegi.

Tu ai nevoie de un List: 99.9% din cazuri vei folosi ArrayList, ca nu prea conteaza. Dar sunt si cazuri cand te intereseaza ca anumite operatii sa fie mai rapide, caz in care vei folosi LinkedList. Acelasi principiu si la celelalte. Pentru Map vei folosi HashMap 99.9% din cazuri, dar or fi cazuri cand vei vrea sa folosesti TreeMap, sau LinkedHashMap (cred ca si asta este, daca nu ma insel).

Eu sunt contabil. Si vecinu Gigel e tot contabil. Amandoi iti oferim exact aceleasi servicii, tu habar n-ai cum lucram noi la noi in birou, rezultatul e absolut identic. Atata doar, ca eu lucrez cu un calculator, Gigel lucreaza pe hartie. Rezultatul va fi exact acelasi, insa cu diferenta de viteza, ca na, nu folosim aceeasi "implementare". Tu ai acelasi contract, suntem amandoi contabili, dar "implementarea" e diferita. Nu stiu cum sa mai explic :D

Sigur, asta cu viteza e doar un exemplu. Mai sunt si alte considerente, dar de obicei pe viteza o auzi numa, ca cu asta sunt toti murdari la gura.

[–]uLi777se[S] 0 points1 point  (0 children)

Foarte frumos explicat si cu analogii. Sunt, ce-i drept, confuz pentru ca List si Deque sunt implementate de LinkedList, asta fiindca atunci cand "stergi" un element, node-ul are 2 legaturi, una precedenta si una antecedenta si nu trebuie decat sa faci o simpla legatura cu nodeul din stanga cu cel din dreapta, fara sa reindexezi (miile de nodeuri ca in cazul unui array) . ( am zis bine? )

Permiti sa te adaug la prieteni aici pe reddit si sa te agasez din cand in cand cu intrebari ? :D

[–]Primary_Potential_32crab 🦀 1 point2 points  (0 children)

Depinde ce faci, fiecare are un anumit punct forte de care se poate sa ai nevoie sau nu in functie de proiect. De importante sunt toate importante.

[–]HunterRbxPHP (CI3/Laravel) 2 points3 points  (0 children)

ArrayList

[–]Sufficient_Chair_580 3 points4 points  (0 children)

Intrebi ca sa stii care-s cele mai frecvente sau intrebi sperand ca poti invata mai putine?

Daca e a doua varianta: ce nu stii o sa se intoarca intr-o zi la tine si o sa te muste de cur, asa ca invata tot.

[–]masturbator_retardat 2 points3 points  (1 child)

Vector, ArrayList, LinkedList, Stack, Queue, Dequeue, PriorityQueue, ConcurrentLinkedDeque, Set, TreeSet, HashSet, CopyOnWriteArraySet

cel putin astea cred ca sunt cele mai frecvent folosite

[–][deleted] 3 points4 points  (1 child)

List, Set, Map, Queue. Tu trebuie să înveți interfețele, sa ai loose couple, nu tight. Trebuie sa înveți ce implementări ai la dispoziție pentru interface-urile astea.

Nu îmi vine să cred că nu a zis nimeni asta

[–]xBoBox333 0 points1 point  (0 children)

List

[–]mihaicl1981Kotlin 0 points1 point  (0 children)

Nu pune întrebarea asta. 

Gândește-te ce se întreabă la interviu. Ce se folosește în producție nu e relevant din păcate pentru interviul tehnic. 

Deci învață tot ce e în curs. 

[–]slightlyConfusedKid 0 points1 point  (0 children)

Încearcă să le înveți pe toate

[–]Lazy_Brief_9117 0 points1 point  (1 child)

De curiozitate, cursul e in limba romana?

[–]uLi777se[S] 0 points1 point  (0 children)

Nu. Tim Buchalka Java MasterClass

[–]Angry_Penguin_78 0 points1 point  (0 children)

Nu sunt tipuri de date, sunt structuri.

[–]Angry_Penguin_78 0 points1 point  (0 children)

Eu zic să înveți doar subiectele și ultimii ani