java中的集合泛型问题

初步了解泛型后,有了点疑问, 集合+泛型 和 对象数组 除了长度可不可变外,还有其他的区别吗?

集合加上泛型是为了包装插入数据的合法性,以及实现自动转型
对象数组只是可以存储指定类型对象,无法实现自动转型

还有以下区别:

数据类型:对象数组是同一数据类型的元素的有序集合,而集合可以存储不同数据类型的元素,包括其他集合和映射类型。
插入和删除:对于对象数组,插入和删除元素会涉及到元素的移动,这可能会导致性能问题。而对于集合,插入和删除元素的开销较小。
索引:对象数组中的元素可以通过索引进行访问,而集合中的元素不能直接通过索引访问。集合中的元素只能通过迭代器进行遍历。
内存占用:对象数组通常使用连续的内存块来存储元素,而集合则需要额外的内存来存储元素之间的链接关系。
对象复制:对于对象数组,复制数组通常会创建一个新的数组对象,这可能会导致性能问题和内存开销。而对于集合,可以使用浅拷贝和深拷贝来创建新的集合对象。

泛型可以直接创建集合,如List list = new ArrayList<>(),这种语法是没问题的,但是你不能用泛型来创建数组,如T[] arr = new T[]这样是不可以的,只能通过反射来新建泛型数组
List后面还有尖括号T,被忽略了

这两者完全没有可比性啊
数组也可以用泛型
集合也可以放对象