var staff = new ArrayList<Employee>();
ArrayList<Employee> staff = new ArrayList<>(100);  // ensureCapacity(100)
 
var elements = new ArrayList<>();  // no

推荐使用 var,不过不用的话,左边说了右边就不说了。但是别混搭了

实际上 ArrayList<> 内部也维护了一个 array,这个也有满的一天,但是当满了他会开一个新的 array,并且全部复制过去

array list 100 vs. array 100

一个是有潜力,实际空;一个是开好了,等着放

C++ Note review

C++ 因为优越的重载运算符,所以对象定义的是深复制,而 Java 是浅复制

add & set

Use the add method instead of set to fill up an array, and use set only to replace a previously added element.

然后是经典 ArrayList 和 LinkedList 的区别。

Compatibility between Typed and Raw Array Lists