Problem z operacjami na kontenerze TreeMap

0

Witam.

Mam na zadanie napisać program który tablicę o "znacznej" ilości wymiarów będzie przechowywał w innym obiekcie - ja chcę użyć TreeMap. Oto problematyczna część kodu:

class Tablica {

   /** Konstruktor */
   public Tablica( int N, int size ) {
	   Map<String, Integer> mapa = new TreeMap<String, Integer>();
   }
   
   /** Metoda set */
   public void set(int wartosc ) {
            mapa.put("Pozycja", wartosc);
   }
}

I problem pojawia się w miejscu gdy chcę wpisywać do mapy wartość i pozycję w metodzie set. Domyślam się że trzeba mapę zdefiniować globalnie, jeszcze przed konstruktorem? Jak to zrobić?

Bardzo proszę o pomoc, pozdrawiam.

0

TADA!:

class Tablica {
Map<String, Integer> mapa;
/** Konstruktor */
public Tablica( int N, int size ) {
mapa = new TreeMap<String, Integer>();
}

/** Metoda set */
public void set(int wartosc ) {
mapa.put("Pozycja", wartosc);
}
}

0

Jeżeli chcesz używać własności kolejności odwzorowań zapisanych w takiej mapie, to jej typem nie powinien być Map<String, Integer>, lecz TreeMap<String, Integer>. Inaczej dla kodu będzie to jakaś abstrakcyjna mapa nie mająca właściwości uporządkowania odwzorowań (kluczy), którą ma TreeMap. A chyba nie o to Ci chodzi.

0

Ze jak? Nie wiem co to 'kolejnosc odwzorowan', ale zakladam ze chodzi o sortowanie po kluczach.
Chcesz powiedziec, ze:
Map<String, String> map = new TreeMap<>();

a

TreeMap<String, String> map = new TreeMap<>();

zmienia w tym przypadku cokolwiek?
Jedyne co to w drugim przypadku masz dostep do specjalnych metod TreeMap, ale iterowanie itp. beda wykonywane zgodnie z sortowaniem kluczy. O co chodzi?

0

Igor, zacznij od zastanowienia się jaki powinien być interfejs Twojej klasy, tzn jakie operacje chcesz udostępniać użytkownikowi. Z opisu wynika, że powinno to być coś w rodzaju:

getValue(wspolrzedne...) zwracajace przechowywany obiekt
putValue(wspolrzedne..., obiekt)

Podane rozwiązania jakoś mnie nie przekonują... ;-) - nie widzę jak się mają do zdefiniowanego problemu.

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