当前位置: 首页 > 面试题库 >

Lists.newArrayList与新ArrayList

琴俊良
2023-03-14
问题内容

创建ListString 的最佳构造是什么?是Lists.newArrayList()(来自番石榴)还是new ArrayList()

只是个人喜好吗?
还是仅仅是Type泛型类型推断?
还是使用Lists.newArrayList()有任何理论或实践价值?


问题答案:

番石榴构建器保存多次键入type参数。比较:

List<Foo<Bar, Baz>> list = Lists.newArrayList();
List<Foo<Bar, Baz>> list = new ArrayList<Foo<Bar, Baz>>();

但是在Java 7中,它已经过时了,因为您拥有菱形运算符:

List<Foo<Bar, Baz>> list = new ArrayList<>();


 类似资料:
  • 问题内容: 如果将新文档索引到Elasticsearch索引,则可在索引操作后1秒钟左右搜索新文档。但是,可以通过调用或对索引进行操作来强制使该文档可立即搜索。这两个操作之间有什么区别- 结果似乎对他们来说是相同的,可以立即搜索文档。 这些操作中的每一项到底是什么? ES文档似乎并未深入解决此问题。 问题答案: 您得到的答案是正确的,但我认为值得详细说明。 刷新有效地调用了Lucene索引读取器上

  • 问题内容: 我正在将PHP 5.3库转换为可在PHP 5.2上使用。阻碍我前进的主要因素是使用后期静态绑定,例如,如果将其转换为,将会得到相同的结果吗? 和之间有什么区别? 问题答案: 我会得到相同的结果吗? 并不是的。不过,我不知道针对PHP 5.2的解决方法。 和之间有什么区别? 指的是实际写入关键字的同一类。 在PHP 5.3的最新静态绑定中,指的是您在层次结构中调用方法的任何类。 在以下示

  • 问题内容: 之间有什么区别(如果有) 和 我应该使用哪一个? 问题答案: 该规范说: 当作为函数而不是构造函数调用时,它将创建并初始化一个新的Array对象。因此,函数调用等效于具有相同参数的对象创建表达式。

  • 问题内容: 我可以使用哪些情况?文档说,如果我希望我的收藏集是不可变的,则可以使用此方法。 为什么我要一个不变的空集合? 有什么意义? 问题答案: 从 有效的Java , 项目#43 - 演示返回一个空的集合,甚至演示如何使用这些,和对集合类的方法来得到一个空的集合,也有保持不变的额外好处。从 项目#15开始 。 来自Collections-emptySet-Collections-emptyLi

  • 问题内容: 在实践中,是能够更好地返回一个空列表像这样: 或者像这样: 还是这完全取决于您要对返回的列表执行什么操作? 问题答案: 主要区别是返回一个 不可变的 列表,即不能向其添加元素的列表。(同样适用于Java 9中引入的内容。) 在极少数情况下,您 就 需要修改返回的列表,并因此 不是 一个好的选择。 我想说,只要合同(文档)没有明确声明不同的状态,返回一个不可变的列表就很好(甚至是首选的方

  • 我已经实现了JWT身份验证 我在启动文件中有类似的功能 我假设,每当调用带有authorize属性的api时,它都应该调用ConfigureOAuth,以便从数据库加载所有cient id并通过jwt进行验证,但在调试时,我看到启动文件仅在运行应用程序时运行, 如何在调用任何api时调用ConfigureOAuth函数,以便加载新的clientid并进行验证。 使现代化 当我发布和部署项目时,上面