-
c.getClass() == ArrayList.class:判断传入的集合c是否是ArrayList类型(或其子类?→ 注意:这里用==而非instanceof,严格判断类型是否完全一致)。- 是
ArrayList:直接将a(源ArrayList的底层数组elementData)赋值给当前ArrayList的elementData,避免数组复制,提升性能。 - 不是
ArrayList:通过Arrays.copyOf(...)创建一个新的Object[]数组,并将a中的元素复制进去(确保底层数组类型为Object[],避免类型转换问题)。
- 是