【问题标题】:Whats does new ArrayList<>(Arrays.asList(...)) return?new ArrayList<>(Arrays.asList(...)) 返回什么?
【发布时间】:2020-01-12 22:18:28
【问题描述】:

我很想知道是什么:

new ArrayList<Something>(
         Arrays.asList(
              new Something("1"),
              new Something("2")                                             
         )
);

返回?

它会返回一个包含Something 对象的ArrayList,还是返回一个包含ListListSomething 对象(即ArrayList&lt;List&lt;Something&gt;&gt;)?

【问题讨论】:

  • 你为什么不试试,看看结果如何?
  • new ArrayList&lt;Something&gt; 明确表示它正在创建ArrayList&lt;Something&gt; 时,您为什么认为它可以返回ArrayList&lt;List&lt;Something&gt;&gt;new 运算符不能返回除了正在创建的之外的其他内容。

标签: java arrays list arraylist


【解决方案1】:

它会返回列表中的两个Somethings而不是带有列表的列表,因为你在()中添加的集合中包含的集合的元素将被添加到数组列表中而不是作为集合的集合.

【讨论】:

  • 是的,但只有语言级别为 5+ 时,您可以将其留空。
【解决方案2】:

它不返回任何内容,您正在创建泛型 ArrayList 的实例。

Arrays.asList ...这里的Arrays静态方法用于创建Something类的对象,因为ArrayList&lt;&gt;的类型持有Something类。

最好打印 ArrayList 以检查结果。

for(Something something:myList){

    //print the objects here
}

【讨论】:

  • 在创建列表时,实际上返回了一个新的列表实例。
  • @Maxdola 构造函数返回什么?
  • 是的,基本上构造函数返回一个对象的新实例,就像你在方法中写return this;一样。
猜你喜欢
  • 2011-06-07
  • 2013-05-20
  • 2014-11-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-02
  • 1970-01-01
  • 2015-12-07
  • 1970-01-01
相关资源
最近更新 更多