Mam kartę HashMap
z różnymi kluczami i wartościami, jak mogę uzyskać jedną wartość?
Mam klucz w mapie o nazwie my_code
, powinien zawierać ciąg, jak mogę to uzyskać bez konieczności iteracji po mapie?
Jak dotąd mam ...
HashMap newMap = new HashMap(paramMap);
String s = newMap.get("my_code").toString();
Spodziewam się zobaczyć String
„ABC” lub „DEF”, ponieważ to właśnie tam wstawiłem na początku, ale jeśli to zrobię System.out.println()
, otrzymam coś w rodzajujava.lang.string#F0454
Przepraszam, nie jestem zaznajomiony z mapami, jak pewnie się domyślasz;)
źródło
Jeśli przechowujesz klucze / wartości jako ciągi, to zadziała:
Pytanie brzmi, co zostanie zapełnione w HashMap (klucz i wartość)
źródło
Jeśli użyjesz opcji Generics i zdefiniujesz swoją mapę jako
następnie pobieranie wartości jako
nie będziesz musiał typecast map.get () ani wywoływać metody toString, aby uzyskać wartość String
źródło
Obawiam się, że twoje pytanie nie jest jasne. Klucz nie ma „nazwy”; nie nazywa się go niczym, jeśli chodzi o mapę - to tylko klucz i będzie porównywany z innymi kluczami. Jeśli masz wiele różnych rodzajów kluczy, zdecydowanie sugeruję umieszczenie ich na różnych mapach ze względu na zdrowie psychiczne.
Jeśli to nie pomoże, wyjaśnij pytanie - najlepiej za pomocą kodu, który pokaże, co masz na myśli.
źródło
map.get(myCode)
źródło
Ważną kwestią, na którą należy tutaj zwrócić uwagę, jest to, że jeśli klucz jest obiektem klasy zdefiniowanej przez użytkownika w java, należy nadpisać metodę equals. Ponieważ metoda HashMap.get (klucz obiektu) używa metody equals do dopasowania wartości klucza. Jeśli nie zastąpisz metody equals, spróbuje znaleźć wartość po prostu na podstawie odwołania do klucza, a nie rzeczywistej wartości klucza, w którym to przypadku zawsze zwróci wartość null.
źródło
Załóżmy, że zadeklarowałeś HashMap jako: -
Następnie klucz w mapie jest typu Character typ danych i wartość typu int.Teraz, aby uzyskać wartość odpowiadającą kluczowi niezależnie od typu klucza, typu wartości, składnia jest następująca: -
Więc zgodnie z twoim pytaniem chcesz otrzymać ciąg znaków odpowiadający kluczowi. W tym celu zadeklaruj HashMap jako HashMap <"typ danych klucza", "typ danych wartości" hs = new HashMap <> (); Użycie tego sprawi, że twój kod będzie czystszy, a także nie będziesz musiał konwertować wyniku hs.get ("my_code") na łańcuch, ponieważ domyślnie zwraca wartość ciągu, jeśli w momencie wejścia zachował wartość jako łańcuch.
źródło
Oto kolejny przykład użycia funkcji keySet (), get (), values () i entrySet () w celu uzyskania kluczy i wartości w mapie:
źródło
Możesz użyć metody get (klucz obiektu) z HashMap. Należy pamiętać, że w wielu przypadkach klasa klucza powinna przesłonić metodę equals, aby była użyteczną klasą dla klucza Map.
źródło
Wartość zamapowana na klucz
4
toDD
źródło