Witam drodzy forumowicze.
Mam następujący problem.
Posiadam klasę - > ktora ma pola typu String i Integer.
W maine mam hashmape -> przechowuje typy powyższej klasy, czyli String i integer.
Teraz chciałbym posortować tą mapę względem Stringa używając komparatora.
Oto moj kod:
public class Morze {
String nazwa;
int pow;
public Morze(String nazwa, int pow ) {
this.nazwa = nazwa;
this.pow = pow;
}
public String toString(){
return nazwa + " ma powierzchnie: " + pow;
}
public String getNazwa(){
return nazwa;
}
}
to jest klasa morze - ona jest mało istotna w moim problemie. A to jest main:
static class CompareMorzeName implements Comparator<Morze> {
@Override
public int compare(Morze m1, Morze m2) {
return m1.getNazwa().compareTo(m2.getNazwa());
}
}
public static void main(String[] args) {
///////////// Pobierz z tej mapy do oddzielnej kolekcji wszystkie morza ///////////////
Map<String, Integer> mapaMorza = new HashMap<String, Integer>();
for(Entry<Morze, Rzeka> pary : hashMap.entrySet() ) {
mapaMorza.put( pary.getKey().nazwa , pary.getKey().pow );
}
System.out.println("\n Wyciagniete morza: \n");
for(Entry<String, Integer> paryMorza : mapaMorza.entrySet() ) {
System.out.println(paryMorza.getKey() + ": " + paryMorza.getValue());
}
///////////// Splaszczenie mapy 'mapaMorza' -> do listy ////////////////////////////
List<String> nazwyMorz = new ArrayList<String>();
for(Entry<String, Integer> pary : mapaMorza.entrySet() ) {
}
** ????????????????????????????????? **
/////////// Sortowanie mórz alfabetycznie ////////////////////////////
Collections.sort(splaszczonaMapaMorza, new CompareMorzeName());
**?????????????????? chyba nie mozna wykonac tej operacji bo mamy string i int... dla mapy o kluczach i wartosciach tego samego typu by zadziałało..**
}
}
I teraz moje pytanko, jak za pomocą mojego zaimplementowanego komparatora posortować mapę Morza ? <String, Integer> ?? Na dodatek Collections.sort moge wykorzystac tylko dla interfejsu Listy :( a mapy juz nie.
Jakieś pomysły ??