Java では、コレクション型オブジェクトの初期化は、一般に、最初にオブジェクトを作成し、次にコレクションに要素を追加することです。この書き方は直感的ですが、コードを書くときに冗長に感じます。定義を簡素化する優れた方法はありますか?そして初期化?
この記事では、文字列配列、リスト型オブジェクト、およびマップ型オブジェクトを定義および初期化する簡単な方法を紹介します。
文字列配列の簡略化された初期化
一般的に使用される書き込み方法:
String[] strArray = new String[3] ;
strArray[0] = "1";
strArray[1] = "2";
strArray[2] = "3";
簡略化した書き方:
String[] strArray = new String[] {"1","2","3"};
ここでは 4 行のコードを 1 行のコードで置き換えていますが、かなり簡略化されているのではないでしょうか。
リストの初期化の簡略化
一般的な記述方法は、最初にオブジェクトを作成してから、それに要素を追加することです。コードは次のとおりです。
List<String> list = new ArrayList<String>();
list.add("1");
list.add("2");
list.add("3");
簡略化した書き方:
List<String> list = Arrays.asList("1","2","3");
リスト型オブジェクトの初期化は、Arrays の asList() メソッドを通じて確立されます。
Map タイプの簡略化された初期化 - 非推奨
Map はキーと値のペアの形式でデータを保存します。HashMap 型オブジェクトを定義して初期化するコードは次のとおりです。
Map<String,String> map = new HashMap<String,String>();
map.put("key1", "1");
map.put("key2", "2");
map.put("key3", "3");
Double Brace Initialization を使用すると、HashMap を簡単に初期化できます。コードは次のとおりです。
Map<String,String> map = new HashMap<String,String>(){
{
put("key1", "1");
put("key2", "2");
put("key3", "3");
}};
上記のメソッドは、匿名サブクラスを作成し、初期化コード ブロックで put メソッドを呼び出すだけで、HashMap の定義と初期化の目的を達成します。
ただし、匿名サブクラスが外部クラスへの参照を保持するため、この方法ではシナリオによってはメモリ リークが発生する可能性があることに注意してください。また、上記のコードの簡略化度は高くないため、Map の簡略化方法は推奨されません。