提示二十八: 列表优于数组。
- 数组是协变的,具体化的,泛型是不变的(对于任何两种不同的类型 Type1 和 Type2 , List<Type1> 既不是List<Type2> 的子类型也不是父类型),类型擦除的。
- 数组和泛型不能很好地混合工作,尽量不要把他们混合起来。
- 数组比列表在简洁性和性能上做得更好,但是使用列表可以获得更好的类型安全性和互操作性。
- 一般数组的元素需要确定,否则会受到警告,使用
SafeVarargs
注解可以解决这个问题。
作者还举例说明有使用使用数组需要强转类型,会比较麻烦和危险,这个时候用泛型列表就会比较好。现实中,我发现自己很少使用数组,列表实在是太方便了,还有很多包装好的方法能帮助我更快打成目的,印象中还是以前做算法题的时候才会频繁使用数组。或许就是现在对这些小的开销不敏感了,所以更多的使用更方便的列表。但是很多列表背后还是靠着数组去实现的,以后还是需要多了解他们背后的细节。
网友评论