sortowanie wg kluczy

0

Witam,

Mam następujący problem. Jest tablica, załóżmy t={2,1,3}. Chciałbym ją posortować ale tak, żeby wiedzieć, że elementowi "1" odpowiada indeks "1" a elementowi "2"- "0". Czy sortowanie wg kluczy. Czy jest na to jakiś prosty sposób w Javie? Sort z klasy Arrays pozwala mi tylko na sortowanie tablicy, ale nie wiem jak dostać się do kluczy elementów posortowanych.

z góry wielkie dzięki za pomoc

0

Jeżeli używasz prostych tablic to trzeba zrobić to inaczej. Proste tablice nie mają kluczy, a jedynie indeksy. Lepszą metodą jest zastosowanie map:

Map<String, String> map = new HashMap<String, String>();
map.put("klucz1", "wartość1");
map.put("klucz2", "wartość2");
//....

Zamiast String możesz używać dowolnego obiektu, klucz musi być unikatowy.

0

OK, mam coś takiego:

Map<Integer,Integer> t = new HashMap<Integer,Integer>();
        t.put(0, 1);
        t.put(1, 9);
        t.put(2, 3);
        t.put(3, 5);
        t.put(4, 2);
        t.put(5, 4);
        t.put(6, 9);
        t.put(7, 1);
        t.put(8, 6);

tylko jak to teraz posortować po wartościach (chciałbym np. wybrać tylko 5 najmniejszych wartości i wyciągnąć ich klucze)???

0

java.util.Map.sort(Map map) lub napisać własny komparator java.util.Comparator który będzie porównywał elementy mapy w jakiś twój ulubiony sposób :)
następnie metoda java.util.Map.sort(Map map, Comparator comparator) i tyle :)

0

Wielkie dzięki za odpowiedź :-)

Jest tylko jedno ale...

Map<Integer, Double> d = new HashMap<Integer, Double>();
    for (int i = 0; i < dlugosc.length; i++) {
        d.put(i, dlugosc[i]);
    }

i potem

java.util.Map.sort(d);

Daje mi słodki komunikat Eclipsa:

The method sort(Map<Integer,Double>) is undefined for the type Map

ale o so choci [???]

Tak swoją drogą to Eclipse w ogóle nie podpowiada, żeby była możliwość zastosowania metody sort klasy map.

more help needed

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