コレクションイニシャライザとインスタンスイニシャライザ

C#3.0のコレクションイニシャライザを見て、Javaインスタンスイニシャライザ*1に似ているな、と思った。
まず、C#3.0のコレクションイニシャライザはこんな感じ。

var list = new List<string>
{
    "hoge",
    "piyo" 
};


で、Javaインスタンスイニシャライザはこう。

ArrayList<String> list = new ArrayList<String>() {{
    add("hoge");
    add("piyo");
}};


やっぱり専用の構文があった方がわかりやすいな。

*1:とanonymous classを使った書き方