为什么ArrayList构造时是{},输出却是[]

private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {};

public ArrayList() {
    this.elementData = DEFAULTCAPACITY_EMPTY_ELEMENTDATA;
}

而输出确实[1,2,3]这种?

{} 是 Java 中初始化数组的语法,private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {}; 等同于 private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = new Object[]{};,输出的 [] 是在方法 toString 定义的。

{}是java中定义数组的语法,你不能把他理解为json中的map。

无言以对。。

这个集合不是重写了toString方法了吗。你自己写的类,用快捷键重写的时候,是{}的符号,ArrayList只是变成了[],不要细究