treemap java tutorial with java treemap examples
Bu Java TreeMap Eğitimi, TreeMap Sınıfı, Yineleme, TreeMap Örnekleri, Uygulama, Java Hashmap vs Treemap, TreeMap API Yöntemleri vb.
TreeMap veri yapısı, anahtar / değer çiftlerini doğal olarak sıralanmış bir düzende depolayan bir koleksiyondur. Bir Ağaç Haritası, Java Koleksiyonları Çerçevesinin bir parçasıdır ve bir harita uygulamasıdır.
=> TÜM Java Öğreticilerini Buradan Kontrol Edin.
Ne öğreneceksin:
Java Ağaç Haritası
TreeMap'in Java'daki temel özelliklerinden bazıları şunlardır:
- Java'da ağaç haritası uygulayan TreeMap sınıfı, java.util paketinin bir parçasıdır. Harita arayüzünü uygular.
- TreeMap sınıfı AbstractMap sınıfını genişletir ve ayrıca NavigableMap ve SortedMap (dolaylı olarak) arayüzünü uygular.
- TreeMap senkronize değil.
- Varsayılan olarak, TreeMap öğeleri varsayılan olarak artan sıradadır.
- TreeMap, yinelenen öğelere izin vermez.
- TreeMap boş değerlere izin verir ancak boş anahtarlara izin vermez.
Aşağıdaki diyagram, TreeMap sınıfı için sınıf hiyerarşisini gösterir.
Daha önce belirtildiği gibi, TreeMap sınıfı, SortedMap sınıfını genişleten bir NavigableMap arabirimi uygular. SortedMap ayrıca harita arayüzünü devralır.
TreeMap Sınıfı Bildirimi
TreeMap sınıfının genel beyanı aşağıda verilmiştir:
public class TreeMap extends AbstractMap implements NavigableMap, Cloneable, Serializable
burada K => TreeMap tarafından tutulan anahtar türü
V => eşlenen değerlerin türü
TreeMap Örneği
Aşağıdaki program, bir TreeMap veri yapısının basit bir örneğini göstermektedir.
import java.util.*; class Main{ public static void main(String args()){ //declare a TreeMap and initialize it TreeMap cities_map=new TreeMap (); cities_map.put(100,'Pune'); cities_map.put(102,'Jaipur'); cities_map.put(101,'Hyderabad'); cities_map.put(103,'Bangaluru'); //print the TreeMap contents using forEach System.out.println('Contents of TreeMap:'); System.out.print('{'); for(Map.Entry entries:cities_map.entrySet()){ System.out.print(entries.getKey()+' = '+entries.getValue() + ' '); } System.out.println('}'); } }
Çıktı:
TreeMap İçeriği:
{100 = Pune 101 = Haydarabad 102 = Jaipur 103 = Bangaluru}
Bu programda, Cities_map adında basit bir TreeMap nesnesi tanımladık ve daha sonra put yöntemini kullanarak onu anahtar-değer çiftleri olarak başlattık.
Daha sonra TreeMap sınıfının entrySet () yöntemini kullanıyoruz ve anahtar-değer çiftlerini yazdırmak için bir forEach döngüsü kullanarak bu set üzerinde yineliyoruz. Anahtar-değer çiftlerini yazdırmak için sırasıyla getKey () ve getValue () yöntemlerini kullanırız.
deneyimli profesyoneller için javascript mülakat soruları
TreeMap API Yöntemleri ve Oluşturucuları
Bu bölümde, TreeMap sınıfı tarafından sağlanan çeşitli yapıcıları ve yöntemleri tartışacağız.
İnşaatçılar
Yapıcı Prototip | Açıklama | |
---|---|---|
descendingMap | NavigableMap descendingMap () | Verilen anahtar / değer çiftlerini ters sırada döndürür. |
Ağaç Haritası () | Doğal sıralamayla boş bir TreeMap oluşturmak için varsayılan yapıcı. | |
TreeMap (Karşılaştırıcı karşılaştırıcı) | Belirtilen karşılaştırıcıya göre sıralanan boş bir TreeMap oluşturur. | |
TreeMap (Harita m) | Bir TreeMap oluşturur ve bunu belirtilen haritanın öğeleriyle başlatır, m. Sipariş vermek doğaldır. | |
TreeMap (SortedMap m) | Bir TreeMap oluşturur ve SortedMap girişleriyle onu başlatır. Sıralama, sıralanmışMap ile aynıdır. |
Yöntemler
Yöntem | Yöntem Prototipi | Açıklama |
---|---|---|
tavan girişi | Harita Giriş tavanı Giriş (K tuşu) | Anahtar belirtilen anahtardan büyük veya ona eşit olacak şekilde en küçük anahtar / değer çiftini döndürür; anahtar yoksa boş |
tavan anahtarı | K tavan Anahtarı (K tuşu) | Verilen anahtardan en küçük ve büyük olan anahtarı döndürür; anahtar yoksa null döndürür. |
açık | void temizle () | Ağaç Haritasından tüm anahtar / değer çiftlerini siler. |
klon | Nesne klonu () | TreeMap örneğinin sığ bir kopyasını oluşturur. |
karşılaştırıcı | Karşılaştırıcı karşılaştırıcı () | Anahtarları düzenlemek için kullanılan bir karşılaştırıcı döndürür. sipariş doğalsa boş |
descendingKeySet | NavigableSet descendingKeySet () | TreeMap anahtarlarının NavigableSet görünümünü ters sırada döndürür. |
ilk giriş | Map.Entry FirstEntry () | En düşük anahtar / değer çiftini döndürür. |
zemin girişi | Harita Giriş katı Giriş (K tuşu) | Belirli bir anahtardan küçük veya ona eşit olan en büyük anahtarı döndürür; böyle bir anahtar yoksa null |
her biri için | void forEach (BiConsumer eylemi) | Verilen eylem, Ağaç Haritasındaki her giriş için gerçekleştirilir. |
headMap | SortedMap headMap (K toKey) | Döndürülen anahtar kesinlikle toKey'den daha küçük olacak şekilde bir anahtar / değer çifti döndürmek için kullanılır |
headMap | NavigableMap headMap (K toKey, boole dahil) | Bu anahtarların toKey'den küçük veya kapsayıcıysa eşit olan anahtar / değer çiftlerini döndürür. |
daha yüksek Giriş | Map.Entry highEntry (K tuşu) | En küçük anahtarı veya boş değeri döndürür. Döndürülen anahtar, verilen anahtardan kesinlikle daha büyük. |
highKey | K highKey (K tuşu) | Ağaç haritasında belirtilen anahtar için eşleme mevcutsa anahtarı döndürür. |
anahtar seti | KeySet () ayarla | TreeMap'teki anahtarların küme koleksiyonunu döndürür. |
son giriş | Map.Entry lastEntry () | Anahtar en büyük anahtar olacak şekilde anahtar / değer çiftini döndürür. Anahtar yoksa null döndürür. |
alt giriş | Map.Entry lowerEntry (K tuşu) | Anahtar / değer çiftini, anahtar en büyük olacak ve verilen anahtardan kesinlikle daha küçük olacak şekilde döndürür. Anahtar yoksa null döndürür. |
lowerKey | K lowerKey (K tuşu) | En büyük anahtarı veya boş değeri döndürür. Döndürülen anahtar, verilen anahtardan kesinlikle daha azdır. |
navigableKeySet | NavigableSet navigableKeySet () | Ağaç Haritasındaki anahtarların 'NavigableSetini' döndürür. |
pollFirstEntry | Harita Giriş anketi İlk Giriş () | Kaldırır ve ardından en az anahtarın anahtar / değer çiftini döndürür. |
anket | Harita Giriş anketi Son Giriş () | En büyük anahtarın anahtar / değer çiftini kaldırır ve döndürür. |
koymak | V koy (K anahtarı, V değeri) | TreeMap'e verilen anahtarı ve değeri ekler. |
putAll | void putAll (Harita haritası) | Verilen haritadaki tüm anahtar / değer çiftleri TreeMap'e kopyalanır. |
yerine koymak | V değiştirme (K anahtarı, V değeri) | Verilen anahtarın değerini verilen değerle değiştirir veya değiştirir. |
yerine koymak | boole yerine (K anahtarı, V oldValue, V newValue) | Verilen anahtarın oldValue'unu newValue ile değiştirir. |
hepsini değiştir | void replaceAll (BiFunction işlevi) | Verilen işlevi çağırır ve tüm girdileri işlevin sonucuyla değiştirir. |
subMap | NavigableMap subMap (K fromKey, Boolean fromInclusive, K toAnkey, boolean toInclusive) | 'FromKey' den 'toKey' e anahtarların anahtar / değer çiftlerini döndürür. |
SortedMap | SortedMap subMap (K anahtardan, K anahtarından) | Anahtar (dahil) ile Anahtar (hariç) arasındaki anahtar-değer çiftlerini döndürür. |
tailMap | SortedMap tailMap (K fromAnahtar) | Anahtarlar fromKey'den büyük veya ona eşit olacak şekilde anahtar / değer çiftlerini döndürür. |
tailMap | NavigableMap tailMap (Anahtarından K, boole dahil) | FromKey'e eşit (inclusive = true) veya fromKey'den büyük anahtarlar için anahtar-değer çiftlerini döndürür. |
containsKey | boolean containsKey (Nesne anahtarı) | Treemap'te verilen anahtar için bir eşleme olup olmadığını kontrol eder. Evet ise doğru döndürür. |
containsValue | boolean containsValue (Nesne değeri) | Verilen değerle eşlenmiş bir anahtar olup olmadığını kontrol eder. Doğruysa evet döndürür. |
firstKey | K firstKey () | Sıralanmış Haritadaki en düşük anahtarı veya ilk anahtarı verir |
almak | V get (Nesne anahtarı) | Verilen anahtara eşlenen değeri alır |
lastKey | K lastKey () | Sıralanan haritada son anahtarı veya en yüksek anahtarı döndürür. |
Kaldır | V kaldır (Nesne anahtarı) | TreeMap'te belirtilen anahtar için anahtar / değer çiftini siler |
entrySet | Ayarlamak | Verilen TreeMap için kümeyi döndürür. |
boyut | int size () | TreeMap'teki boyutu veya toplam anahtar / değer çifti sayısını döndürür. |
değerler | Koleksiyon değerleri () | TreeMap için değerlerin koleksiyonunu döndürür. |
TreeMap ile Yineleme
TreeMap, Anahtar-değer çiftlerinden oluşur. TreeMap sınıfı, haritadaki anahtar-değer çiftlerini döndüren bir 'entrySet' yöntemi sağlar. ForEach döngüsünü kullanarak bu girişleri yineleyebilir ve sırasıyla getKey () ve getValue () yöntemlerini kullanarak anahtarları ve değerleri görüntüleyebiliriz.
Bu, aşağıdaki Java programında gösterilmektedir:
import java.util.Map; import java.util.TreeMap; class Main { public static void main(String() arg){ //declare and initialize TreeMap Map colorsTree = new TreeMap(); colorsTree.put('R', 'Red'); colorsTree.put('G', 'Green'); colorsTree.put('B', 'Blue'); colorsTree.put('M', 'Magenta'); System.out.println('The contents of TreeMap:'); // retrieve set of map entries using entrySet method for (Map.Entry Map_entry : colorsTree.entrySet()) //print key-value pairs using getKey() and getValue() System.out.println( '(' + Map_entry.getKey() + '=>' + Map_entry.getValue() + ')'); } }
Çıktı:
TreeMap'in içeriği:
(B => Mavi)
(G => Yeşil)
(M => Macenta)
(R => Kırmızı)
Java'da TreeMap Uygulaması
Aşağıdaki Java programı, yukarıda tartışılan TreeMap sınıfının ana yöntemini göstermektedir.
import java.util.Map; import java.util.Map.Entry; import java.util.TreeMap; public class Main { public static void main(String() args) { //declare a TreeMap Object and initialize it with values TreeMap map = new TreeMap<>(); for(int i=1;i<=10;i++) { map.put(i, (i*i)+''); } System.out.println('Original Map:' + map); //lowerEntry, higherEntry Entry entry = map.lowerEntry(4); System.out.println('Closest Lower Entry than 4:'+entry); entry = map.higherEntry(4); System.out.println('Closest Higher Entry than 4:'+entry); System.out.println('Closest Lower key than 4 :'+map.lowerKey(4)); entry = map.floorEntry(6); System.out.println('Closest floor entry than 6: '+entry); entry = map.ceilingEntry(6); System.out.println('Closest ceiling Entry than 6 :'+entry); entry = map.firstEntry(); System.out.println('TreeMap First Entry:'+entry); entry = map.lastEntry(); System.out.println('TreeMap Last Entry:'+entry); Map reversedMap = map.descendingMap(); System.out.println('Reversed TreeMap: '+reversedMap); //pollFirstEntry, pollLastEntry entry = map.pollFirstEntry(); System.out.println('TreeMap First Entry:'+entry); entry = map.pollLastEntry(); System.out.println('TreeMap Last Entry:'+entry); //subMap Map subMap = map.subMap(2, true, 6, true); System.out.println('Submap from 2 to 6: '+subMap); //headMap subMap = map.headMap(5, true); System.out.println('HeadMap: '+subMap); //tailMap subMap = map.tailMap(5, true); System.out.println('TailMap: '+subMap); } }
Çıktı:
Orijinal Harita: {1 = 1, 2 = 4, 3 = 9, 4 = 16, 5 = 25, 6 = 36, 7 = 49, 8 = 64, 9 = 81, 10 = 100}
4: 3 = 9'dan En Yakın Alt Giriş
4: 5 = 25'ten En Yakın Yüksek Giriş
4: 3'ten en yakın Alt tuş
6: 6 = 36'dan en yakın kat girişi
6: 6 = 36'dan daha yakın tavan girişi
TreeMap İlk Giriş: 1 = 1
TreeMap Son Giriş: 10 = 100
Tersine Çevrilmiş Ağaç Haritası: {10 = 100, 9 = 81, 8 = 64, 7 = 49, 6 = 36, 5 = 25, 4 = 16, 3 = 9, 2 = 4, 1 = 1}
TreeMap İlk Giriş: 1 = 1
TreeMap Son Giriş: 10 = 100
2'den 6'ya kadar alt harita: {2 = 4, 3 = 9, 4 = 16, 5 = 25, 6 = 36}
HeadMap: {2 = 4, 3 = 9, 4 = 16, 5 = 25}
TailMap: {5 = 25, 6 = 36, 7 = 49, 8 = 64, 9 = 81}
TreeMap'i Değere Göre Sırala
Varsayılan olarak, TreeMap doğal sıralamaya göre anahtarlara göre sıralanır. Ancak Ağaç Haritasını değerlere göre sıralamak istiyorsak, sıralamayı tanımlamak için karşılaştırıcıyı kullanmalıyız.
Aşağıdaki Java programı, TreeMap'i değere göre sıralar.
import java.util.*; class Main { //Method for sorting the TreeMap based on values public static > Map sortTreeMap(final Map map) { //define a comaprator to sort TreeMap on values Comparator valueComparator = new Comparator() { public int compare(K k1, K k2) { int compare = map.get(k1).compareTo(map.get(k2)); if (compare == 0) return 1; else return compare; } }; //use the comparator to sort the TreeMap and return sortedTreeMap Map sortedTreeMap = new TreeMap(valueComparator); sortedTreeMap.putAll(map); return sortedTreeMap; } public static void main(String args()) { //define and initialize the TreeMap TreeMap treemap = new TreeMap(); treemap.put('R', 'Red'); treemap.put('G', 'Green'); treemap.put('B', 'Blue'); treemap.put('C', 'Cyan'); treemap.put('M', 'Magenta'); // call method sortTreeMap to sort the TreeMap Map sortedTreeMap = sortTreeMap(treemap); // Retrieve set of the entries on the sorted map Set set = sortedTreeMap.entrySet(); System.out.println('The sorted TreeMap based on Values:'); // Now define iterator on this set Iterator i = set.iterator(); // Print TreeMap elements while(i.hasNext()) { Map.Entry me = (Map.Entry)i.next(); System.out.print(me.getKey() + ': '); System.out.println(me.getValue()); } } }
Çıktı:
Değerlere göre sıralanmış Ağaç Haritası:
B: Mavi
C: Camgöbeği
G: Yeşil
M: Eflatun
R: Kırmızı
Java Hashmap ve Treemap
HashMap ile TreeMap arasındaki bazı önemli farkları görelim.
Aşağıdaki tablo bu farklılıkları göstermektedir.
salesforce geliştirici mülakat soruları ve yanıtları
HashMap | Ağaç Haritası |
---|---|
HashMap, TreeMap'ten çok daha hızlıdır. | TreeMap daha yavaştır |
Harita arayüzünü uygular. | NavigableMap arayüzünü uygular. |
Hashing uygulama tekniğini kullanır | Uygulama için kırmızı-siyah ağaç kullanın |
İçeren öğelerin herhangi bir sırasını korumaz | Ağaç haritasındaki Anahtarlar zaten doğal düzene göre sıralanmıştır. |
Bir boş anahtara ve birçok boş değere izin verir | Yalnızca boş değerlere izin verir ancak anahtarlar boş olamaz |
Temel işlemleri gerçekleştirir, sabit zamanda koyar ve alır. | İşlemleri gerçekleştirmek ve almak için log (n) zaman ayırın |
HashMap sınırlı işlevselliğe sahiptir. | TreeMap sınıfı, veri yapısını değiştirmemize yardımcı olan birçok ek işlevsellik sağlar. |
Karşılaştırmak için equals () yöntemini kullanır. | Karşılaştırmak için CompareTo () yöntemini kullanır. |
Sıkça Sorulan Sorular
S # 1) Java'da TreeMap nedir?
Cevap: Java'daki TreeMap, önceden sıralanmış anahtar-değer çiftlerinden oluşan bir koleksiyondur. Uygulama amacıyla kırmızı-siyah bir ağaç kullanır. Java TreeMap, Harita arayüzünden ayrı NavigableMap arayüzünü uygular ve ayrıca AbstractMap sınıfını genişletir.
S # 2) TreeMap'i neden Java'da kullanıyoruz?
Cevap: TreeMap, Java'da Map ve NavigableMap arayüzlerini ve AbstractMap sınıfını uygulamak için kullanılır. TreeMap anahtarları doğal sıralamaya göre sıralandığından, bu veri yapısını dizin yapısını, ağaç hiyerarşilerini vb. Saklamak için kullanabiliriz.
S # 3) Hangisi daha iyi - HashMap veya TreeMap?
Cevap: HashMap, TreeMap'ten daha iyidir. HashMap, temel işlemleri gerçekleştirmek için her zaman sabit zaman alırken, TreeMap bu işlemleri gerçekleştirmek için log (n) süresi alır. Daha büyük veri nesneleri söz konusu olduğunda, HashMap, TreeMap ile karşılaştırıldığında daha hızlı performans gösterir.
S # 4) TreeMap sıralandı mı?
Cevap: Evet, TreeMap'teki anahtar girişleri doğal sıralamaya göre sıralanır. TreeMap sınıfı ayrıca TreeMap'i değerlere göre sıralamak için özel bir karşılaştırıcı kullanmamıza izin verir.
S # 5) TreeMap iş parçacığı açısından güvenli midir?
Cevap: Hayır, TreeMap iş parçacığı açısından güvenli bir koleksiyon değildir.
Sonuç
Bu eğitimde, TreeMap in Java'yı ayrıntılı olarak tartıştık. TreeMap, harita arayüzünü uygulayan bir anahtar-değer çiftleri koleksiyonudur. Ayrıca bir NavigableMap arabirimi de uygular. TreeMap'in öğeleri benzersizdir ve kopyalarına izin verilmez.
TreeMap'in yapıcılarını ve yöntemlerini gördük. Ayrıca TreeMap programını uyguladık ve TreeMap sınıfının ana yöntemlerini gösterdik. Ardından HashMap ve TreeMap arasındaki farkları tartıştık.
=> Java Eğitim Serisini Herkes İçin Görmek İçin Burayı Ziyaret Edin.
Önerilen Kaynaklar
- TreeSet In Java: Programlama Örnekleriyle Öğretici
- Java'da İkili Arama Ağacı - Uygulama ve Kod Örnekleri
- Yeni Başlayanlar İçin JAVA Eğitimi: 100+ Uygulamalı Java Video Eğitimi
- Java Dizesi () Örneklerle Yöntem Eğitimi içerir
- Java Vektör Nedir | Örneklerle Java Vektör Sınıfı Eğitimi
- Java'da Jagged Array - Örneklerle Eğitim
- Örneklerle Java Tarayıcı Sınıfı Eğitimi
- Java Dize Eğitimi | Örneklerle Java Dize Yöntemleri