java中Lists.newArrayList和new ArrayList的详细区别?
Lists.newArrayList
是Guava库提供的一个方便的方法,用于创建一个类型安全的ArrayList
。而new ArrayList()
是Java原生的方式。
区别如下:
- 类型安全:使用
Lists.newArrayList
创建的列表是类型安全的,意味着你可以在创建时指定列表中元素的类型,这样编译器可以在编译时进行类型检查。而new ArrayList()
不是类型安全的,需要在运行时进行类型检查。 - 初始容量:
Lists.newArrayList
可以接收一个初始容量参数,如果你知道大概需要多少元素,可以提供一个初始容量,这样可以减少重新分配的次数,从而提高性能。new ArrayList()
则不可以。 - 导入:使用
Lists.newArrayList
需要导入Guava库,而new ArrayList()
是Java基础库的一部分,不需要额外导入。
示例代码:
// 使用Lists.newArrayList
import com.google.common.collect.Lists;
List<String> listWithGuava = Lists.newArrayList(); // 类型安全,无初始容量
List<String> listWithGuavaAndInitialCapacity = Lists.newArrayListWithCapacity(10); // 类型安全,有初始容量
// 使用new ArrayList()
import java.util.ArrayList;
ArrayList<String> listWithJava = new ArrayList<>(); // 非类型安全,无初始容量
ArrayList<String> listWithJavaAndInitialCapacity = new ArrayList<>(10); // 非类型安全,有初始容量
如果不需要Guava库提供的额外功能,并且项目中没有使用Guava库,那么应该使用new ArrayList()
以减少依赖。如果项目中已经在使用Guava库,为了代码的一致性和类型安全,可以选择Lists.newArrayList
。
评论已关闭