Bir harita anahtar bazında yani anahtar ve değer çifti bazında değerler içerir. Her anahtar ve değer çifti bir giriş olarak bilinir. Bir Harita benzersiz anahtarlar içerir.
Öğeleri bir anahtara göre aramanız, güncellemeniz veya silmeniz gerekiyorsa Harita kullanışlıdır.
Java Harita Hiyerarşisi
Java'da Harita'yı uygulamak için iki arayüz vardır: Harita ve SortedMap ve üç sınıf: HashMap, LinkedHashMap ve TreeMap. Java Haritasının hiyerarşisi aşağıda verilmiştir:
Harita, yinelenen anahtarlara izin vermez, ancak yinelenen değerlere sahip olabilirsiniz. HashMap ve LinkedHashMap boş anahtarlara ve değerlere izin verir, ancak TreeMap herhangi bir boş anahtara veya değere izin vermez.
Bir Haritanın içinden geçilemez, bu nedenle onu kullanarak Set'e dönüştürmeniz gerekir. anahtar seti() veya girişSet() yöntem.
Sınıf | Tanım |
---|---|
Hash Haritası | HashMap, Haritanın uygulanmasıdır, ancak herhangi bir düzeni korumaz. |
LinkedHashMap | LinkedHashMap, Haritanın uygulanmasıdır. HashMap sınıfını miras alır. Ekleme sırasını korur. |
Ağaç Haritası | TreeMap, Harita ve SortedMap'in uygulanmasıdır. Artan düzeni korur. |
Harita arayüzünün faydalı yöntemleri
Yöntem | Tanım |
---|---|
V put(Nesne anahtarı, Nesne değeri) | Haritaya giriş eklemek için kullanılır. |
void putAll(Harita haritası) | Belirtilen haritayı haritaya eklemek için kullanılır. |
V putIfAbsent(K tuşu, V değeri) | Belirtilen değeri, yalnızca önceden belirtilmemişse, belirtilen anahtarla haritaya ekler. |
V kaldır(Nesne anahtarı) | Belirtilen anahtara ait girişi silmek için kullanılır. |
boolean kaldır(Nesne anahtarı, Nesne değeri) | Belirtilen değerleri, ilişkili belirtilen anahtarlarla birlikte haritadan kaldırır. |
KeySet()'i ayarla | Tüm tuşları içeren Set görünümünü döndürür. |
Ayarlamak | Tüm anahtarları ve değerleri içeren Set görünümünü döndürür. |
geçersiz temizleme() | Haritayı sıfırlamak için kullanılır. |
V hesaplama(K tuşu, BiFunction remappingFunction) | Belirtilen anahtar ve onun geçerli eşlenen değeri (veya geçerli eşleme yoksa null) için bir eşleme hesaplamak için kullanılır. |
V computeIfAbsent(K tuşu, İşlev eşlemeFonksiyonu) | Belirtilen anahtar halihazırda bir değerle ilişkilendirilmemişse (veya null ile eşlenmişse) ve null olmadığı sürece onu bu haritaya girerse, verilen eşleme işlevini kullanarak değerini hesaplamak için kullanılır. |
V computeIfPresent(K tuşu, BiFunction remappingFunction) | Belirtilen anahtarın değeri mevcutsa ve boş değilse, anahtar ve onun mevcut eşlenen değeri verilen yeni bir eşlemeyi hesaplamak için kullanılır. |
boolean includeValue(Nesne değeri) | Bu yöntem, haritada bu değere eşit bir değer mevcutsa true değerini döndürür, aksi takdirde false değerini döndürür. |
boolean includeKey(Nesne anahtarı) | Bu yöntem, haritada anahtara eşit bir anahtar mevcutsa true değerini döndürür, aksi takdirde false değerini döndürür. |
boole eşittir (Nesne o) | Belirtilen Nesneyi Harita ile karşılaştırmak için kullanılır. |
void forEach(BiConsumer eylemi) | Tüm girişler işlenene veya eylem bir istisna atıncaya kadar, haritadaki her giriş için verilen eylemi gerçekleştirir. |
V get(Nesne anahtarı) | Bu yöntem, anahtarla ilişkili değeri içeren nesneyi döndürür. |
V getOrDefault(Nesne anahtarı, V defaultValue) | Belirtilen anahtarın eşlendiği değeri veya eşleme anahtar için eşleme içermiyorsa defaultValue değerini döndürür. |
int hashCode() | Haritanın karma kod değerini döndürür |
boolean isEmpty() | Bu yöntem, harita boşsa true değerini döndürür; en az bir anahtar içeriyorsa false değerini döndürür. |
V birleştirme(K tuşu, V değeri, BiFunction remappingFunction) | Belirtilen anahtar zaten bir değerle ilişkilendirilmemişse veya null ile ilişkilendirilmişse, onu verilen null olmayan değerle ilişkilendirir. |
V değiştir(K tuşu, V değeri) | Belirtilen anahtar için belirtilen değerin yerini alır. |
boolean değiştirme(K tuşu, V eskiDeğer, V yeniDeğer) | Belirtilen anahtarın eski değerini yeni değerle değiştirir. |
void Hepsini Değiştir(BiFunction işlevi) | Tüm girişler işlenene veya işlev bir istisna atıncaya kadar, her girişin değerini, o girişte verilen işlevin çağrılmasının sonucuyla değiştirir. |
Koleksiyon değerleri() | Haritada bulunan değerlerin koleksiyon görünümünü döndürür. |
int boyut() | Bu yöntem haritadaki girişlerin sayısını döndürür. |
Harita Giriş Arayüzü
Giriş, Haritanın alt arayüzüdür. Yani ona Map.Entry ismiyle erişeceğiz. Öğeleri bu sınıftan olan haritanın koleksiyon görünümünü döndürür. Anahtar ve değer elde etmek için yöntemler sağlar.
Map.Entry arayüzünün yöntemleri
Yöntem | Tanım |
---|---|
K getKey() | Anahtar almak için kullanılır. |
V getValue() | Değer elde etmek için kullanılır. |
int hashCode() | HashCode'u elde etmek için kullanılır. |
V setValue(V değeri) | Bu girdiye karşılık gelen değeri belirtilen değerle değiştirmek için kullanılır. |
boole eşittir (Nesne o) | Belirtilen nesneyi mevcut diğer nesnelerle karşılaştırmak için kullanılır. |
statik | Anahtardaki nesneleri doğal sırayla karşılaştıran bir karşılaştırıcı döndürür. |
Statik Karşılaştırıcı | Verilen Karşılaştırıcıyı kullanarak nesneleri anahtara göre karşılaştıran bir karşılaştırıcı döndürür. |
statik | Nesneleri değerlerine göre doğal sırayla karşılaştıran bir karşılaştırıcı döndürür. |
Statik Karşılaştırıcı | Verilen Karşılaştırıcıyı kullanarak nesneleri değere göre karşılaştıran bir karşılaştırıcı döndürür. |
Java Harita Örneği: Genel Olmayan (Eski Stil)
//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()); } } }
Çıktı:
1 Amit 2 Jai 5 Rahul 6 Amit
Java Haritası Örneği: Genel (Yeni Stil)
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()); } } }
Çıktı:
102 Rahul 100 Amit 101 Vijay
Java Haritası Örneği: CompareByKey()
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); } }
Çıktı:
100=Amit 101=Vijay 102=Rahul
Java Haritası Örneği: Azalan Sırayla KarşılaştırmaByKey()
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); } }
Çıktı:
oyun güvercini android
102=Rahul 101=Vijay 100=Amit
Java Haritası Örneği: CompareByValue()
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); } }
Çıktı:
100=Amit 102=Rahul 101=Vijay
Java Harita Örneği: Azalan Sırayla KarşılaştırmaByValue()
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); } }
Çıktı:
101=Vijay 102=Rahul 100=Amit