logo

Interfejs mapy Java

Mapa zawiera wartości na podstawie klucza, czyli pary klucz-wartość. Każda para klucz-wartość nazywana jest wpisem. Mapa zawiera unikalne klucze.

przekonwertuj tablicę bajtów na ciąg

Mapa przydaje się, jeśli trzeba wyszukiwać, aktualizować lub usuwać elementy na podstawie klucza.

Hierarchia mapy Java

Istnieją dwa interfejsy do implementacji Map w Javie: Map i SortedMap oraz trzy klasy: HashMap, LinkedHashMap i TreeMap. Hierarchia mapy Java jest podana poniżej:

Hierarchia mapy Java

Mapa nie pozwala na duplikowanie kluczy, ale możesz mieć zduplikowane wartości. HashMap i LinkedHashMap zezwalają na klucze i wartości zerowe, ale TreeMap nie zezwala na żaden klucz ani wartość zerową.

Mapy nie można przemierzać, dlatego należy ją przekonwertować na Set za pomocą zestaw kluczy() Lub zestaw wpisów() metoda.

KlasaOpis
HashMapa HashMap jest implementacją Map, ale nie utrzymuje żadnego porządku.
Połączona mapa HashLinkedHashMap to implementacja Map. Dziedziczy klasę HashMap. Zachowuje kolejność wstawiania.
Mapa Drzewa TreeMap jest implementacją Map i SortedMap. Zachowuje porządek rosnący.

Przydatne metody interfejsu Map

metodaOpis
V put (klucz obiektu, wartość obiektu)Służy do wstawienia wpisu na mapie.
void putAll (mapa mapy)Służy do wstawienia określonej mapy na mapę.
V putIfAbsent(K klucz, wartość V)Wstawia określoną wartość z określonym kluczem na mapie tylko wtedy, gdy nie została ona jeszcze określona.
V usuń (klucz obiektu)Służy do usuwania wpisu dla określonego klucza.
wartość logiczna usuń (klucz obiektu, wartość obiektu)Usuwa z mapy określone wartości wraz z powiązanymi określonymi kluczami.
Ustaw zestaw kluczy()Zwraca widok Set zawierający wszystkie klucze.
Ustawićzestaw wpisów()Zwraca widok Set zawierający wszystkie klucze i wartości.
puste jasne()Służy do resetowania mapy.
Obliczenia V (klawisz K, funkcja ponownego mapowania BiFunction)Służy do obliczenia mapowania dla określonego klucza i jego aktualnie mapowanej wartości (lub wartości null, jeśli nie ma bieżącego mapowania).
V computeIfAbsent (klawisz K, funkcja mapowania funkcji)Służy do obliczenia jego wartości za pomocą danej funkcji mapującej, jeśli podany klucz nie jest już powiązany z wartością (lub jest odwzorowany na wartość null) i wprowadza go do tego odwzorowania, chyba że ma wartość null.
V computeIfPresent (klawisz K, funkcja remapowania BiFunction)Służy do obliczenia nowego mapowania, biorąc pod uwagę klucz i jego aktualnie odwzorowaną wartość, jeśli wartość dla określonego klucza jest obecna i nie jest null.
wartość logiczna zawiera wartość (wartość obiektu)Ta metoda zwraca wartość true, jeśli na mapie istnieje wartość równa wartości, w przeciwnym razie zwraca wartość false.
wartość logiczna zawiera klucz (klucz obiektu)Ta metoda zwraca wartość true, jeśli na mapie istnieje klucz równy temu kluczowi, w przeciwnym razie zwraca wartość false.
wartość logiczna równa się (obiekt o)Służy do porównania określonego Obiektu z Mapą.
void forEach (akcja BiConsumer)Wykonuje daną akcję dla każdego wpisu na mapie, dopóki wszystkie wpisy nie zostaną przetworzone lub akcja nie zgłosi wyjątku.
V get (klucz obiektu)Ta metoda zwraca obiekt zawierający wartość powiązaną z kluczem.
V getOrDefault (klucz obiektu, V wartość domyślna)Zwraca wartość, na którą odwzorowany jest określony klucz, lub wartość domyślną, jeśli mapa nie zawiera mapowania dla klucza.
int kod hash()Zwraca wartość kodu skrótu dla mapy
wartość logiczna jest pusta()Ta metoda zwraca wartość true, jeśli mapa jest pusta; zwraca false, jeśli zawiera co najmniej jeden klucz.
Scalanie V (klawisz K, wartość V, funkcja ponownego mapowania BiFunction)Jeśli określony klucz nie jest już powiązany z wartością lub jest powiązany z wartością null, kojarzy go z podaną wartością inną niż null.
Zamień V (klawisz K, wartość V)Zastępuje określoną wartość dla określonego klucza.
zamiana logiczna (klawisz K, V stara wartość, V nowa wartość)Zastępuje starą wartość nową wartością dla określonego klucza.
nieważne zamień wszystko (funkcja BiFunction)Zastępuje wartość każdego wpisu wynikiem wywołania danej funkcji dla tego wpisu, dopóki wszystkie wpisy nie zostaną przetworzone lub funkcja nie zgłosi wyjątku.
Wartości kolekcji()Zwraca widok kolekcji wartości zawartych na mapie.
rozmiar całkowity()Ta metoda zwraca liczbę wpisów na mapie.

Interfejs mapy.Entry

Wejście jest podinterfejsem Map. Będziemy więc mieli do niego dostęp po nazwie Map.Entry. Zwraca widok kolekcji mapy, której elementy należą do tej klasy. Zapewnia metody uzyskiwania klucza i wartości.

Metody interfejsu Map.Entry

metodaOpis
K getKey()Służy do uzyskania klucza.
V getValue()Służy do uzyskania wartości.
int kod hash()Służy do uzyskania hashCode.
V setValue (wartość V)Służy do zastąpienia wartości odpowiadającej temu wpisowi określoną wartością.
wartość logiczna równa się (obiekt o)Służy do porównania określonego obiektu z innymi istniejącymi obiektami.
statycznyKomparatorporównywanieByKey()Zwraca komparator, który porównuje obiekty w naturalnej kolejności na kluczu.
komparator statycznyporównywanieByKey(Komparator cmp)Zwraca komparator, który porównuje obiekty według klucza przy użyciu danego komparatora.
statycznyKomparatorporównywanieWedługWartości()Zwraca komparator, który porównuje obiekty w kolejności naturalnej według wartości.
komparator statycznyporównywanieByValue(Komparator cmp)Zwraca komparator, który porównuje obiekty według wartości przy użyciu danego komparatora.

Przykład mapy Java: nieogólna (w starym stylu)

 //Non-generic import java.util.*; public class MapExample1 { public static void main(String[] args) { Map map=new HashMap(); //Adding elements to map map.put(1,'Amit'); map.put(5,'Rahul'); map.put(2,'Jai'); map.put(6,'Amit'); //Traversing Map Set set=map.entrySet();//Converting to Set so that we can traverse Iterator itr=set.iterator(); while(itr.hasNext()){ //Converting to Map.Entry so that we can get key and value separately Map.Entry entry=(Map.Entry)itr.next(); System.out.println(entry.getKey()+' '+entry.getValue()); } } } 

Wyjście:

rozmiary czcionek w lateksie
 1 Amit 2 Jai 5 Rahul 6 Amit 

Przykład mapy Java: ogólna (nowy styl)

 import java.util.*; class MapExample2{ public static void main(String args[]){ Map map=new HashMap(); map.put(100,'Amit'); map.put(101,'Vijay'); map.put(102,'Rahul'); //Elements can traverse in any order for(Map.Entry m:map.entrySet()){ System.out.println(m.getKey()+' '+m.getValue()); } } } 

Wyjście:

 102 Rahul 100 Amit 101 Vijay 

Przykład mapy Java: porównanieByKey()

 import java.util.*; class MapExample3{ public static void main(String args[]){ Map map=new HashMap(); map.put(100,'Amit'); map.put(101,'Vijay'); map.put(102,'Rahul'); //Returns a Set view of the mappings contained in this map map.entrySet() //Returns a sequential Stream with this collection as its source .stream() //Sorted according to the provided Comparator .sorted(Map.Entry.comparingByKey()) //Performs an action for each element of this stream .forEach(System.out::println); } } 

Wyjście:

bash sprawdza, czy zmienna środowiskowa jest ustawiona
 100=Amit 101=Vijay 102=Rahul 

Przykład mapy Java: porównanieByKey() w kolejności malejącej

 import java.util.*; class MapExample4{ public static void main(String args[]){ Map map=new HashMap(); map.put(100,'Amit'); map.put(101,'Vijay'); map.put(102,'Rahul'); //Returns a Set view of the mappings contained in this map map.entrySet() //Returns a sequential Stream with this collection as its source .stream() //Sorted according to the provided Comparator .sorted(Map.Entry.comparingByKey(Comparator.reverseOrder())) //Performs an action for each element of this stream .forEach(System.out::println); } } 

Wyjście:

 102=Rahul 101=Vijay 100=Amit 

Przykład mapy Java: porównanieByValue()

 import java.util.*; class MapExample5{ public static void main(String args[]){ Map map=new HashMap(); map.put(100,'Amit'); map.put(101,'Vijay'); map.put(102,'Rahul'); //Returns a Set view of the mappings contained in this map map.entrySet() //Returns a sequential Stream with this collection as its source .stream() //Sorted according to the provided Comparator .sorted(Map.Entry.comparingByValue()) //Performs an action for each element of this stream .forEach(System.out::println); } } 

Wyjście:

 100=Amit 102=Rahul 101=Vijay 

Przykład mapy Java: porównanieByValue() w kolejności malejącej

 import java.util.*; class MapExample6{ public static void main(String args[]){ Map map=new HashMap(); map.put(100,'Amit'); map.put(101,'Vijay'); map.put(102,'Rahul'); //Returns a Set view of the mappings contained in this map map.entrySet() //Returns a sequential Stream with this collection as its source .stream() //Sorted according to the provided Comparator .sorted(Map.Entry.comparingByValue(Comparator.reverseOrder())) //Performs an action for each element of this stream .forEach(System.out::println); } } 

Wyjście:

 101=Vijay 102=Rahul 100=Amit