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

这个带有List和ArrayList的语句是什么意思?

聂和宜
2023-03-14
问题内容

我正在阅读Drools Planner示例,并且遇到了很多这样的代码:

List<Column> columnList = new ArrayList<Column>(n);

据我所知,它应该初始化一个长度为n的列表,该列表存储Column数据类型。

但是,在表达式的两侧具有 不同的集合数据类型 该怎么办?

如果ArrayList<Column>类型与匹配 List<Column>,则与执行操作有何不同:

List<Column> columnList = new List<Column>(n);

问题答案:

List是一个接口。您无法创建接口实例。

ArrayList 是实现List的类,您可以创建一个。

接口仅定义行为。一个实现和接口实现该行为的类。

您将注意到,如果您查看API,则许多不同的类将实现该List接口。那是因为它们都提供了List定义方法的实现。而且,这些实现可能大都不同,因为和的ArrayList工作方式不同,例如a
LinkedList

最好使用表格

List list = new ListType()

因为您可以在以后更改列表实现(如果需要),而不会影响您的代码。原因是如果您这样做

ListType list = new ListType()

列表的类型为ListType,只有和的一个实例具有ListType子类。

如果您执行上面显示的首选分配,则可以将实现的 任何东西 分配Listlist



 类似资料:
  • 本文向大家介绍语句for( ;1 ;) 有什么问题?它是什么意思?相关面试题,主要包含被问及语句for( ;1 ;) 有什么问题?它是什么意思?时的应答技巧和注意事项,需要的朋友参考一下 死循环,和while(1)相同。

  • b & 0xFF for b in这个怎么理解

  • 问题内容: 谁能看到为什么此开关不起作用? 在此语句中,始终返回默认值,但是在对switch表达式进行硬编码时,switch块会按预期工作。查看ReadString()函数代码,它返回一个字符串,因此我看不到任何原因导致我的示例不起作用。 难道我做错了什么?! 问题答案: 您的文本包含两个字节:是2和是1。 您第二个符号是不可见的,您可以尝试使用将其删除。

  • 下面的代码返回一个错误,但我不确定原因。需要更改哪些内容以允许编译?

  • 我运行了几个测试场景,其中我从SOAP客户端调用远程系统的SOA服务,并遇到了各种远程异常。你能帮我确定每个错误意味着什么吗- 1) java.net网站。ConnectException:连接被拒绝“ 2)Java . net . socket time out异常:连接超时" 3) 连接异常: 连接超时”

  • 问题内容: 我是Go的新手,在浏览其他一些线程时遇到了以下代码行: 含义是什么?它是否指定将在if条件中分配某些内容(因为err似乎正在发生这种情况)?我在Wiki上找不到这种语法的示例,并且我很好奇它的用途。 问题答案: 因为返回两个值,所以如果需要它们中的任何一个,都必须在某个地方接收这些值。该是一个占位符,基本的意思是“我不关心这个特殊的返回值。” 在这里,我们只关心检查错误,而无需对实际的