Wątek przeniesiony 2017-05-29 19:25 z Java przez furious programming.

HashMap - potrzebna pomoc

0

Witam!
Po długiej przerwie w kontaktach z javą (dosć mocno się na siebie pogniewaliśmy, ciche dni trwały niemal 4 lata) potrzebuję pomocy w wykonaniu zadania dotyczącego Hashmap.
Próbowałem sobie conieco przypomnieć na podstawie różnych prezentacji/ nagrań na youtube/ publikacji i fragmentów kodów znalezionych w internecie, jednak nie wiem co z czym połączyć i co gdzie zamieścić, dlatego proszę o pomoc.

Zadanie: MyHashMap
W załączniku znajdziesz klasę MyHashMap. Klasa ta już zawiera:

  • Student[] array; - W tej tablicy dane powinny zostać zapisywane.
  • public MyHashMap (int capacity) – Ten konstruktor tworzy tabelę hash z podanym rozmiarem.
  • int hashFunction (Student t) – Ta metoda oblicza wartość hash studenta.
    Nie zmieniaj powyższych metod. Zmień tylko te, które zawierają komentarz //TODO: Your code here.
    Tabela hash powinna móc pomieścić obiekty klasy Student. Jako funkcja hash powinno zostać użyte: h(s)=|(k mod n)|, gdzie k to hashCode() klasy Student, a n to pojemność tabeli hash.
    Kolizje powinny zostać rozwiązane przez sondowanie liniowe (nie separacje łańcuchowe!) z rozmiarem czcionki 1.
    Twoje rozwiązanie nie potrzebuje implementacji dodatkowych bibliotek.
  1. Zaimplementuj MyHashMap.add(Student s) – Zaimplementuj metodę void add (Student s) w klasie MyHashMap, która dodaje obiekt typu Student. Obiekt powinien zostać zapisany w arrayu. W przypadku, gdy tabela hash jest pełna, metoda powinna wyrzucić RuntimeException. W przypadku, gdy student jet już dodany do tabeli hash, metoda znowu powinna wyrzucić RuntimeException.
  2. Zaimplementuj MyHashMap.contains(Student s) – Zaimplementuj metodę boolean contains (Student s) w klasie MyHashMap, która zapewnia, czy Student s istnieje w tabeli hash (wskazówka: użyj Student.equals(Student s)). W przypadku, gdy Student s istnieje w tabeli hash, metoda powinna dać true, a w innym wypadku false.
  3. Zaimplementuj MyHashMap.remove(Student s) – Zaimplemntuj metodę void remove (Student s) w klasie MyHashMap, która objekt typu Student usuwa z tabeli hash. W przypadku, gdy student nie może ozstać odnaleziony w tabeli, metoda powinna wyrzucać RuntimeException.
  4. Zaimplementuj MyHashMap.getNumberStudentsWithHashvalue(int h) – Zaimplementuj metodę int getNumberStudentsWithHashvalue(int h) w klasie MyHashMap, która zwraca, ile studentów w tabeli hash ma wartość hash h.
  5. Zaimplementuj Implementiere MyHashMap.resize() – Zaimplementuj metodę void resize () w klasie MyHashMap, która podwaja rozmiar (pojemność) tabeli hash. Stwórz do tego nowy array i rozdziel elementy starej tabeli hash do nowej.

dodatkowo zamieszczam w załączniku plik, który dostaliśmy aby na nim pracować.

Z góry dzięki za wszelkie wskazówki oraz jakąkolwiek pomoc!

0

§4. Forum dyskusyjne
7. Zabronione jest umieszczanie w postach prośby o rozwiązanie zadań domowych, zadań zaliczeniowych. Lenistwo nie jest tolerowane. Można poprosić o rozwiązanie konkretnego problemu, a nie całego zadania, paru zadań.

0
Haskell napisał(a):

§4. Forum dyskusyjne
7. Zabronione jest umieszczanie w postach prośby o rozwiązanie zadań domowych, zadań zaliczeniowych. Lenistwo nie jest tolerowane. Można poprosić o rozwiązanie konkretnego problemu, a nie całego zadania, paru zadań.

Bardziej chodzi mi jak pisałem o "wskazówki i jakąkolwiek pomoc" jakbym chciał aby ktoś mi to rozwiał to napisałbym "proszę o rozwiązanie zadania" :D

0

No a pokaż teraz co Ty zrobiłeś w klasie MyHashMap.java

1 użytkowników online, w tym zalogowanych: 0, gości: 1