在刷题的时候看到有人写代码用了{{}}写法,以前没有见过,特此记录。
Queue简单介绍 举例queue = new LinkedList<>() {{ add(root); }};
{{}}这种方法是对一个集合进行初始化操作,避免了对集合初始化进行一条一条的add。
ArrayList理解list = new ArrayList (){ { add("A"); add("B"); add("C"); }}; // 和下面功能实现一样 // ArrayList list = new ArrayList (); // list.add("a"); // list.add("b"); // list.add("c");
第一个括号
//定义了一个继承于ArrayList的类,它没有名字 new ArrayList(){ //在这里对这个类进行具体定义 };
这里的括号表示对一个类进行具体的定义。
第二个括号
new ArrayList(){ { //这里是实例初始化块,可以直接调用父类的非私有方法或访问非私有成员 } };
这里的括号表示实例初始化块(Instance Initialiazer Block),也被称为非静态初始化块。
类比于静态初始块
static{
//静态初始块
}
参考
https://www.cnblogs.com/dengyungao/p/7524981.html



