Lists.newArrayList()和new的区别
时间: 2024-06-05 12:10:03 浏览: 102
Lists.newArrayList()是Google Guava库中的一个静态工厂方法,用于创建一个ArrayList对象并返回。它的作用等同于使用new ArrayList()来创建一个ArrayList对象,但它有一些优点:
1. 使用Lists.newArrayList()方法可以避免重复输入类型参数,即可以省略类型参数,例如:List<String> list = Lists.newArrayList()。
2. Lists.newArrayList()方法在创建ArrayList对象时,会尽量避免数组复制操作,从而提高性能,特别是在创建大型集合对象时。
3. Google Guava库的Lists类提供了许多其他有用的静态工厂方法,可以让我们更方便地创建各种类型的集合对象。
而使用new关键字创建ArrayList对象时,需要手动输入类型参数,并且没有上述优点。
相关问题
优化代码 SimulationSelectedVariantDto variant = request.getVariant(); return Objects.isNull(variant) ? Lists.newArrayList() : CollectionUtils.isEmpty(variant.getNodeAutoSetting()) ? Lists.newArrayList() : variant.getNodeAutoSetting();
这段代码可以进一步简化和优化。使用Java 8的Optional类可以使代码更简洁和易读。可以像下面这样重构代码:
```
return Optional.ofNullable(request.getVariant())
.map(SimulationSelectedVariantDto::getNodeAutoSetting)
.filter(CollectionUtils::isNotEmpty)
.orElse(Lists.newArrayList());
```
这个代码使用Optional类的map和filter方法来处理对象的空值和集合的空值情况。如果variant为null,直接返回空列表。如果variant不为null,但是nodeAutoSetting为空,也返回空列表。否则返回nodeAutoSetting列表。这样可以避免使用嵌套的三元表达式,代码更加清晰易懂。
lists.newarraylist
lists.newarraylist 是 Java 的一个方法,用于创建一个新的 ArrayList。这个方法属于 java.util.Arrays 类。使用方法为:
```
List<Type> list = Lists.newArrayList(element1, element2, ...);
```
其中 Type 是泛型参数,表示这个 ArrayList 中存储的元素类型,element1, element2, ... 是可变参数,表示初始化时添加的元素。
例如:
```
List<Integer> list = Lists.newArrayList(1, 2, 3);
```
该语句创建一个 ArrayList,初始化为 [1, 2, 3]。
```
如果不知道 Lists 是什么,那么就是Guava库中的一个工具类,提供了很多方便操作List的静态方法,如果没有引入Guava库,那就需要自己手写。
阅读全文