Posortowana Mapa

0

Witam. Otóż piszę prostą grę planszową i zastanawiam się nad reprezentacją pól. Czy dobrze jest to zrobić za pomocą mapy a dokladnie Map < Point, Pole > ? I teraz po kliknięcia odczytywać dane pole za pomocą wspolrzędnych ? Wydaje mi się, że tak tylko w pierwszym kroku muszę wypełnić wszystkie pola... Czy istnieje taka mapa która gwarantuje kolejność taką w jakiej wartosci i klucze zostaly dodane?

0

Jesli wielkosci wymiarow sa stale to uzylbym tablic

0

A możesz wyjaniśnić czemu byłoby to lepsze? Dostęp do mapy przez klucz jest chyba szybki + kod lepiej będzie wyglądał tzn bardziej obiektowo. Tylko to pierwsze odczytanie wszystkich pól w odpowiedniej kolejności...

0

1.Użycie tablic jest logiczniejsze.
2.I szybsze (nie ma narzutu na wywoływanie żadnej metody).
3.No i przede wszystkim nie stwarzasz sztucznego problemu w iterowaniu.

0

Dostęp do wartości mapy poprzez klucz jest szybkie, ale nigdy nie szybsze niż dostęp do wartości tablicy przez indeks i mapa nigdy nie będzie działać szybciej niż tablica, za to może działać wolniej (i działa wolniej). Jeżeli więc znasz wielkość planszy to najlepiej użyć zwykłej tablicy - szczególnie, że rozwiąże to Twój problem sortowania.

0

Hmm dzięki za odpowiedź, ale jednak tak nie mogę zrobić. Kod ma być jak najbardziej obiektowy i pętle ( przy takiej tablicy dwuwymiarowej ich będzie dużo) nie są mile widziane. Czy w takim razie można jakość uzyskać kolejność wartości w mapie? Może to być wolniejsze niż w tablicy. I tak użyję tego tylko jeden raz przy wyświetlaniu całej planszy. Potem będę uaktualniał tylko dane pole - mając klucz ( punkt(x,y) ) szybko dostane się do danego pola.

0

No niestety to nie są moje wymysły. Przy pętli for(int i = 0 ; i < 3 ; i ++ ) prowadzący zapytał :" a co jakby zmienił 3 na 5 ? Jak szybko znajdzie pan ten błąd ?" No nic, zostane na razie przy tej tablicy.

0

LinkedHashMap zachowuje kolejnosc par tak jak byly dodane. Iteracja po mapie odbedzie sie w takiej samej kolejnosci w jakiej bylo dodawanie (pod wzgledem kluczy).

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