Mapy<Points,Integer> problem z dotarciem do skladowych klasy

0

Witam tak jak w temacie stworzyłem sobie mapę, która zawiera jako klucze obiekty klasy Points(int x,int y), a jak wartość przechowuje sobie Integera.
Na czym polega mój problem. Ano na tym, że chciałbym się teraz dostać do wartości przez podanie klucza. Tym kluczem chciałbym, żeby był obiekt klasy Points przechowujący moje dwa dane punkty. Niestety obawiam się, że jak dam coś takiego

mapa.get(new Points(moja wartosc x,moja wartosc y));
 

to nie dostanę tego co wcześniej tak samo tam włożyłem putem... Jak otrzymać ten mój konkretny klucz spod wartości x i y?

0

Po pierwsze: nie ma sensu implementowanie klasy punkt, ponieważ biblioteka javy oferuję klasę Point (nawiasem mówiąc mającą identyczny konstruktor(int x,int y)). Po drugie: tak, wywołanie mapa.get (new Obiekt()) powoduje, że żądasz wydania z mapy wartości na podstawie klucza, który tworzysz w tej samej linii (więc ten obiekt nie istnieje, ponieważ nie został wcześniej do mapy włożony). Rozwiązaniem jest odwrócenie mapy tak, aby kluczem był integer, a wartością klasa punkt.

0

@kosaasdad o_O
@damiannno jak się chcesz tak bawić to musisz nadpisać w klasie Point metodę equals() i hashCode() tak żeby dla dwóch obiektów Point które mają takie same współrzędne zwracać ten sam hashCode i mieć equals na true.
Ale faktycznie po co robić koło na nowo skoro Point już jest? ;)

0

Wartości w keyset w mapie musza być unikalne więc odwrócenie pary klucz-wartość niekoniecznie może być wykonalne dla tego przypadku.

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