Chirurgia endoscopică a hipofizei
"Standardul de aur" în chirurgia hipofizară îl reprezintă endoscopia transnazală transsfenoidală. Echipa NeuroHope este antrenată în unul din cele mai mari centre de chirurgie a hipofizei din Europa, Spitalul Foch din Paris, centrul în care a fost introdus pentru prima dată endoscopul în chirurgia transnazală a hipofizei, de către neurochirurgul francez Guiot. Pe lângă tumorile cu origine hipofizară, prin tehnicile endoscopice transnazale pot fi abordate numeroase alte patologii neurochirurgicale. www.neurohope.ro |
HashMap implementare Java
Last Updated: Mar 17 2018 19:07, Started by
mihaela014
, Mar 14 2018 23:20
·
0
#1
Posted 14 March 2018 - 23:20
Buna seara! Incerc sa inteleg si sa implementez colectiile din java. Am inteles si implementat Stiva, Lista, Cozile, dar m-am impotmolit la HashMap-uri. Am citit teorie si am vazut cateva implementari, insa sunt diferite si nu le inteleg foarte bine. Am inteles ca HashMap-ul implementeaza metodele interfetei Map (am vazut care sunt).
Mi-am facut interfata cu functiile aferente, apoi clasa mea care implementeaza metodele interfetei. Aceasta clasa trebuie sa aiba 2 ArrayList, unu pt chei si unu pt valori ? Am mai vazut o varianta in care myHash(de exemplu) contine doar cheie si valoare( de exemplu int key, String value). Insa nu inteleg cum mi se face mie get-ul si set-ul daca nu am un vector. Ma poate ajuta cineva cu o implementare exacta? (M-am uitat pe stackOverflow) |
#2
Posted 14 March 2018 - 23:33
Hash table, descrisa in mai orice carte de algoritmi/structuri de date.
Edited by dani.user, 14 March 2018 - 23:39. |
#3
Posted 15 March 2018 - 05:23
mihaela014, on 14 martie 2018 - 23:20, said:
Am mai vazut o varianta in care myHash(de exemplu) contine doar cheie si valoare( de exemplu int key, String value). Insa nu inteleg cum mi se face mie get-ul si set-ul Cine stie sa implementeze API-uri echivalente in java cu siguranta nu are nici o problema sa inteleaga codul sursa in java pentru un HashMap, adica intrebarea nu-si are sensul dani.user, on 14 martie 2018 - 23:33, said:
Hash table, descrisa in mai orice carte de algoritmi/structuri de date. hashtable. In in aplicatii multi-threading lucrurile stau invers. In java hashtable-ul nu accepta null-uri si pentru chei si/sau valori , insa hashmap-ul accepta insa o singura valoarea de null in chei si multe valori de null-uri in valori LinkedHashMap extinde HashMap, insa cu diferenta ca LHM-ul pastreaza ordinea de insertie in map, pe cand HashMap-ul nu o face Asta inseamna ca daca la nivel de cod, am nevoie sa trec de la colectie care nu pastreaza ordinea de insertie la o colectie care o face, pur si simplu fac swap de obiect in cod si atat Nu acelasi lucru este valabil daca folosesc un hashtable. Edited by WinstonMontana, 15 March 2018 - 05:13. |
#4
Posted 15 March 2018 - 08:56
dani.user a zis de hash table din cartea de algoritmica, si a zis bine ce a zis.
dar sunt de acord ca @OP cel mai probabil incurca a folosi cu a implementa. |
#5
Posted 15 March 2018 - 13:55
WinstonMontana, on 15 martie 2018 - 05:23, said:
vezi ca faci confuzie intre a implementa si a folosi. A implementa insemana a creea la randul tau un API echivalent, a folosi un API e cu totul altceva. Cine stie sa implementeze API-uri echivalente in java cu siguranta nu are nici o problema sa inteleaga codul sursa in java pentru un HashMap, adica intrebarea nu-si are sensul Vorbim de java, lucrurile stau complet diferit. In java hashtable-lul este sincronizat iar hashmap nu este.Asta inseamna ca in aplicatii singlethread hashmap performeaza mult mai bine decat hashtable. In in aplicatii multi-threading lucrurile stau invers. In java hashtable-ul nu accepta null-uri si pentru chei si/sau valori , insa hashmap-ul accepta insa o singura valoarea de null in chei si multe valori de null-uri in valori LinkedHashMap extinde HashMap, insa cu diferenta ca LHM-ul pastreaza ordinea de insertie in map, pe cand HashMap-ul nu o face Asta inseamna ca daca la nivel de cod, am nevoie sa trec de la colectie care nu pastreaza ordinea de insertie la o colectie care o face, pur si simplu fac swap de obiect in cod si atat Nu acelasi lucru este valabil daca folosesc un hashtable. Vreau sa-mi construiesc eu toate metodele si functiile (implementare), ca sa inteleg cum functioneaza. Dati-mi va rog un link unde sa vad o implementare sau o explicatie. Citesc in "Data Structures and Algorithms in Java, 6 th Edition, 2014". Este ceva, dar nu inteleg eu implementarea. Si da, am folosit "implements" pentru ca Map e interfata, iar clasa mea implementeaza acele metode. am de exemplu // key = int; value = String; public interface Map { int getSize(); boolean isEmpty(); String get(int key); String put(int key, String value); String remove(int key, String value); Iterable keySet(); Iterable values(); Iterable entrySet(); } si mai am public class MyHashMap implements Map{ private ArrayList keys; ???? private ArrayList values; ??? ... } La aceasta parte a doua, am nevoie de ajutor. OriginalCopy, on 15 martie 2018 - 08:56, said:
dani.user a zis de hash table din cartea de algoritmica, si a zis bine ce a zis. dar sunt de acord ca @OP cel mai probabil incurca a folosi cu a implementa. E vorba de a implementa. Sa-mi fac propriile clase, metode, interfete, care sa functioneze ca HashMap-ul . |
#6
Posted 15 March 2018 - 16:17
#7
Posted 15 March 2018 - 16:44
Nu ati inteles ce vrea fata. Ea doreste o replicare a clasei de HashMap exact cum este redactata in java:
http://grepcode.com/...ashMap.<init>() Esta ca si cum tu ai vrea sa inveti C si pt asta trebuie mai inatai sa inveti cum sa proiectezi compilatorul de C (asa gandeste ea) . Mihaela daca vrei sa stii ca in spatele HashMap-ului stau combinatii de algortimi precum Greedy , Divide Et Impera si Programa Dinamica, daca tot vorbim de implementare de colectii. De curiozitate, poti sa pui aici ce ai "implementat" in java pana acum precum : "Stiva", "Lista", "Cozile" ? Eu banuiesc ca de fapt ai replicat doar modul cum sunt concepute si redactate insa nu si functionalitatea din spatele lor. Edited by WinstonMontana, 15 March 2018 - 16:50. |
#8
Posted 15 March 2018 - 22:52
Mai bine invata sa folosesti colectiile din Java, decit sa le implementezi. Macar ajuta la ceva, implementarea unui HashMap mai prost nu ajuta la nimic
Daca cindva o sa ajungi in situatia in care nici o colectie din Java nu se potriveste pentru ceea ce vrei sa faci si nici nu gasesti o alternativa deja implementata, testata si rastestata, atunci poti sa-ti freci creierii creind propriul HashMap "mai bun" |
#9
Posted 17 March 2018 - 19:07
WinstonMontana, on 15 martie 2018 - 16:44, said:
Nu ati inteles ce vrea fata. Ea doreste o replicare a clasei de HashMap exact cum este redactata in java: http://grepcode.com/...ashMap.<init>() Esta ca si cum tu ai vrea sa inveti C si pt asta trebuie mai inatai sa inveti cum sa proiectezi compilatorul de C (asa gandeste ea) . Mihaela daca vrei sa stii ca in spatele HashMap-ului stau combinatii de algortimi precum Greedy , Divide Et Impera si Programa Dinamica, daca tot vorbim de implementare de colectii. De curiozitate, poti sa pui aici ce ai "implementat" in java pana acum precum : "Stiva", "Lista", "Cozile" ? Eu banuiesc ca de fapt ai replicat doar modul cum sunt concepute si redactate insa nu si functionalitatea din spatele lor. Lista Simplu Inlantuita public class Node { private int value; private Node next; public Node(int value) { this.value = value; next = null; } public int getValue() { return value; } public Node getNext() { return next; } public void setNext(Node next) { this.next = next; } public void setValue(int value) { this.value = value; } } public class ListaSimpla { private Node head ; private int size ; public ListaSimpla() { head = null; size = 0; } public boolean isEmpty() { if (size == 0) return true; return false; } public Node getFirst() { return head; } public void show() { Node n = head; if (isEmpty()) System.out.println("Empty list!!"); else { do { System.out.println(n.getValue()); n = n.getNext(); } while (n != null); } } public void addBeforeHead(Node element) { if (head == null) { head = element; size++; } else { element.setNext(head); head = element; size++; } } public void addAfterHead(Node element) { if (head == null) { head = element; size++; } else { element.setNext(head.getNext()); head.setNext(element); size++; } } public void removeFirst() { try { head = head.getNext(); size--; } catch (NullPointerException e) { System.out.println("Lista este goala! Nu puteti sterge!"); } } } |
Anunturi
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users