Java TreeMap クラスは、赤黒ツリーベースの実装です。これは、キーと値のペアをソートされた順序で保存する効率的な手段を提供します。
Java TreeMap クラスに関する重要な点は次のとおりです。
- Java TreeMap には、キーに基づいた値が含まれています。 NavigableMap インターフェイスを実装し、AbstractMap クラスを拡張します。
- Java TreeMap には固有の要素のみが含まれます。
- Java TreeMap は null キーを持つことはできませんが、複数の null 値を持つことができます。
- Java TreeMap は同期されていません。
- Java TreeMap は昇順を維持します。
TreeMap クラスの宣言
java.util.TreeMap クラスの宣言を見てみましょう。
Cの乱数生成器
public class TreeMap extends AbstractMap implements NavigableMap, Cloneable, Serializable
TreeMap クラスのパラメータ
java.util.TreeMap クラスのパラメータを見てみましょう。
Java TreeMap クラスのコンストラクター
コンストラクタ | 説明 |
---|---|
ツリーマップ() | これは、キーの自然な順序を使用してソートされる空のツリー マップを構築するために使用されます。 |
TreeMap(コンパレータコンパレータ) | これは、コンパレーター comp を使用してソートされる空のツリーベースのマップを構築するために使用されます。 |
ツリーマップ(マップメートル) | これは、次のエントリでツリーマップを初期化するために使用されます。 メートル 、キーの自然な順序を使用して並べ替えられます。 |
ツリーマップ(ソートされたマップ m) | これは、SortedMap からのエントリでツリーマップを初期化するために使用されます。 sm と同じ順序でソートされます。 sm。 |
Java TreeMapクラスのメソッド
方法 | 説明 |
---|---|
地図.入口天井入口(Kキー) | 最小のキー、指定されたキー以上のキーを持つキーと値のペアを返します。そのようなキーがない場合は null を返します。 |
K天井キー(Kキー) | 指定されたキーよりも大きい最小のキーを返します。そのようなキーがない場合は null を返します。 |
ボイドクリア() | すべてのキーと値のペアをマップから削除します。 |
オブジェクトクローン() | TreeMap インスタンスの浅いコピーを返します。 |
コンパレータ コンパレータ() | キーを順序どおりに配置するコンパレータを返します。マップが自然順序付けを使用している場合は null を返します。 |
NavigableSet下りKeySet() | マップに含まれるキーの逆順の NavigableSet ビューを返します。 |
NavigableMap 降順Map() | 指定されたキーと値のペアを降順で返します。 |
Map.Entry firstEntry() | キーが最も少ないキーと値のペアを返します。 |
Map.入口フロア入口(Kキー) | 指定されたキー以下の最大のキーを返します。そのようなキーがない場合は null を返します。 |
void forEach(BiConsumer アクション) | すべてのエントリが処理されるか、アクションが例外をスローするまで、マップ内の各エントリに対して指定されたアクションを実行します。 |
ソートマップ headMap(K toKey) | これは、キーが厳密に toKey より小さいキーと値のペアを返します。 |
NavigableMap headMap(K toKey、ブール値を含む) | これは、キーが toKey より小さい (または inclusive が true の場合は等しい) キーと値のペアを返します。 |
Map.Entry 上位エントリ(K キー) | 指定されたキーより厳密に大きい最小のキーを返します。そのようなキーがない場合は null を返します。 |
K 上位キー(K キー) | このマップに指定されたキーのマッピングが含まれている場合に true を返すために使用されます。 |
keySet() を設定します | マップ内に存在するキーのコレクションを返します。 |
Map.Entry lastEntry() | 最大のキーを持つキーと値のペアを返します。そのようなキーがない場合は null を返します。 |
Map.Entry lowerEntry(Kキー) | 指定されたキーより厳密に小さい最大のキーに関連付けられたキーと値のマッピングを返します。そのようなキーが存在しない場合は null を返します。 |
K lowerKey(Kキー) | 指定されたキーより厳密に小さい最大のキーを返します。そのようなキーがない場合は null を返します。 |
NavigableSet navigableKeySet() | このマップに含まれるキーの NavigableSet ビューを返します。 |
Map.EntrypollFirstEntry() | このマップ内の最小のキーに関連付けられたキーと値のマッピングを削除して返します。マップが空の場合は null を返します。 |
Map.EntrypollLastEntry() | このマップ内の最大のキーに関連付けられたキーと値のマッピングを削除して返します。マップが空の場合は null を返します。 |
V put(Kキー、V値) | 指定されたキーを持つ指定された値をマップに挿入します。 |
void putAll(マップマップ) | これは、すべてのキーと値のペアをあるマップから別のマップにコピーするために使用されます。 |
V replace(Kキー、V値) | 指定されたキーの指定された値を置き換えます。 |
boolean replace(K キー、V oldValue、V newValue) | 指定されたキーの古い値を新しい値に置き換えます。 |
void replaceAll(BiFunction 関数) | すべてのエントリが処理されるか、関数が例外をスローするまで、各エントリの値をそのエントリに対して指定された関数を呼び出した結果に置き換えます。 |
NavigableMap subMap(K fromKey, boolean fromInclusive, K toKey, boolean toInclusive) | キーの範囲が fromKey から toKey であるキーと値のペアを返します。 |
SortedMap subMap(K fromKey, K toKey) | これは、キーの範囲が fromKey (両端を含む) から toKey (両端を含まない) までのキーと値のペアを返します。 |
SortedMap tailMap(K fromKey) | キーが fromKey 以上であるキーと値のペアを返します。 |
NavigableMap tailMap(K fromKey、ブール値を含む) | これは、キーが fromKey より大きい (または、包括的が true の場合は等しい) キーと値のペアを返します。 |
ブール値 containsKey(オブジェクト キー) | マップに指定されたキーのマッピングが含まれている場合は true を返します。 |
ブール値 containsValue(オブジェクト値) | マップが 1 つ以上のキーを指定された値にマップする場合、true を返します。 |
K firstKey() | これは、現在このソートされたマップ内の最初の (最も低い) キーを返すために使用されます。 |
V get(オブジェクトキー) | これは、マップが指定されたキーをマップする値を返すために使用されます。 |
K lastKey() | これは、ソートされたマップ内に現在ある最後の (最も高い) キーを返すために使用されます。 |
V 削除(オブジェクトキー) | 指定されたキーのキーと値のペアをマップから削除します。 |
セット | マップに含まれるマッピングのセット ビューを返します。 |
int サイズ() | ハッシュテーブル内に存在するキーと値のペアの数を返します。 |
コレクションの値() | マップに含まれる値のコレクション ビューを返します。 |
Java ツリーマップの例
import java.util.*; class TreeMap1{ public static void main(String args[]){ TreeMap map=new TreeMap(); map.put(100,'Amit'); map.put(102,'Ravi'); map.put(101,'Vijay'); map.put(103,'Rahul'); for(Map.Entry m:map.entrySet()){ System.out.println(m.getKey()+' '+m.getValue()); } } }
Output:100 Amit 101 Vijay 102 Ravi 103 Rahul
Java ツリーマップの例:remove()
import java.util.*; public class TreeMap2 { public static void main(String args[]) { TreeMap map=new TreeMap(); map.put(100,'Amit'); map.put(102,'Ravi'); map.put(101,'Vijay'); map.put(103,'Rahul'); System.out.println('Before invoking remove() method'); for(Map.Entry m:map.entrySet()) { System.out.println(m.getKey()+' '+m.getValue()); } map.remove(102); System.out.println('After invoking remove() method'); for(Map.Entry m:map.entrySet()) { System.out.println(m.getKey()+' '+m.getValue()); } } }
出力:
彼らは歌手です
Before invoking remove() method 100 Amit 101 Vijay 102 Ravi 103 Rahul After invoking remove() method 100 Amit 101 Vijay 103 Rahul
Java ツリーマップの例: NavigableMap
import java.util.*; class TreeMap3{ public static void main(String args[]){ NavigableMap map=new TreeMap(); map.put(100,'Amit'); map.put(102,'Ravi'); map.put(101,'Vijay'); map.put(103,'Rahul'); //Maintains descending order System.out.println('descendingMap: '+map.descendingMap()); //Returns key-value pairs whose keys are less than or equal to the specified key. System.out.println('headMap: '+map.headMap(102,true)); //Returns key-value pairs whose keys are greater than or equal to the specified key. System.out.println('tailMap: '+map.tailMap(102,true)); //Returns key-value pairs exists in between the specified key. System.out.println('subMap: '+map.subMap(100, false, 102, true)); } }
descendingMap: {103=Rahul, 102=Ravi, 101=Vijay, 100=Amit} headMap: {100=Amit, 101=Vijay, 102=Ravi} tailMap: {102=Ravi, 103=Rahul} subMap: {101=Vijay, 102=Ravi}
Java ツリーマップの例: SortedMap
import java.util.*; class TreeMap4{ public static void main(String args[]){ SortedMap map=new TreeMap(); map.put(100,'Amit'); map.put(102,'Ravi'); map.put(101,'Vijay'); map.put(103,'Rahul'); //Returns key-value pairs whose keys are less than the specified key. System.out.println('headMap: '+map.headMap(102)); //Returns key-value pairs whose keys are greater than or equal to the specified key. System.out.println('tailMap: '+map.tailMap(102)); //Returns key-value pairs exists in between the specified key. System.out.println('subMap: '+map.subMap(100, 102)); } }
headMap: {100=Amit, 101=Vijay} tailMap: {102=Ravi, 103=Rahul} subMap: {100=Amit, 101=Vijay}
ハッシュマップとツリーマップの違いは何ですか?
ハッシュマップ | ツリーマップ |
---|---|
1) HashMap には 1 つの null キーを含めることができます。 | TreeMap には null キーを含めることはできません。 |
2) HashMap は順序を維持しません。 | TreeMap は昇順を維持します。 |
Java ツリーマップの例: 本
import java.util.*; class Book { int id; String name,author,publisher; int quantity; public Book(int id, String name, String author, String publisher, int quantity) { this.id = id; this.name = name; this.author = author; this.publisher = publisher; this.quantity = quantity; } } public class MapExample { public static void main(String[] args) { //Creating map of Books Map map=new TreeMap(); //Creating Books Book b1=new Book(101,'Let us C','Yashwant Kanetkar','BPB',8); Book b2=new Book(102,'Data Communications & Networking','Forouzan','Mc Graw Hill',4); Book b3=new Book(103,'Operating System','Galvin','Wiley',6); //Adding Books to map map.put(2,b2); map.put(1,b1); map.put(3,b3); //Traversing map for(Map.Entry entry:map.entrySet()){ int key=entry.getKey(); Book b=entry.getValue(); System.out.println(key+' Details:'); System.out.println(b.id+' '+b.name+' '+b.author+' '+b.publisher+' '+b.quantity); } } }
出力:
1 Details: 101 Let us C Yashwant Kanetkar BPB 8 2 Details: 102 Data Communications & Networking Forouzan Mc Graw Hill 4 3 Details: 103 Operating System Galvin Wiley 6