arraynew Integer[]{ 1, 2, 3 }
のように、たった 1 行を使用して TreeMap を作成および設定できますか?
// I want to use it in situations like this:
this.lookFor( new TreeMap( {...} ) );
HashMap
またはLinkedHashMap
あまりにもチャンスはありますか?
マップを具体的に初期化するための組み込み構文はありません。ただし、「二重ブレースの初期化」と呼ばれる特別な構文を利用できます。
Map<String, Integer> map = new TreeMap<String, Integer>() {{ put("one", 1); put("two", 2); put("three", 3); }};
中かっこの外側のペアは、を拡張する匿名内部クラスを宣言および初期化していることを意味しますTreeMap
。中かっこの内側のペアは、インスタンス初期化子(インスタンスの作成時に実行されるコード) を表します。
の中括弧表記
new Integer[]{ 1, 2, 3 }
配列型の特別な表記法です。
の中括弧表記
new TreeMap( {...} )
コンパイルされません。
の中括弧表記
new TreeMap( ) {}
の匿名サブクラスを作成しますTreeMap
。あなたができることは、これを行い、すぐにインスタンス初期化子を使用してMap
.
new TreeMap() {{this.put(1,2);}}
もちろん、ユースケースに当てはまる型を使用してください。
これは、二重ブレースの初期化と呼ばれます。
このサンプルコードを使用できると思います
this.lookFor(new TreeMap<Object,Object>(){
@Override
public boolean isEmpty() {
/*
*some code
*/
}
});