ArrayList(Collection<? extends E> c) 
          构造一个包含指定 collection 中的元素的新 List。这个构造函数()里应该传什么?按字面应该是传一个List类型的集合对象,但传阿拉伯数字也编译得过?或者传Set的集合对象也行?
new ArrayList(1);
new ArrayList(new TreeSet());

解决方案 »

  1.   

    看看api就清楚了,两个不是一回事
      

  2.   

    ArrayList() 
        构造一个初始容量为 10 的空列表。
     
    ArrayList(Collection<? extends E> c) 
        构造一个包含指定 collection 的元素的列表,这些元素是按照该 collection 的迭代器返回它们的顺序排列的。 
        new ArrayList(new TreeSet());ArrayList(int initialCapacity) 
        构造一个具有指定初始容量的空列表。 
        new ArrayList(1);
      

  3.   

    ArrayList有3个构造函数:
    ArrayList()
              构造一个初始容量为 10 的空列表。
    ArrayList(Collection<? extends E> c)
              构造一个包含指定 collection 的元素的列表,这些元素是按照该 collection 的迭代器返回它们的顺序排列的。
    ArrayList(int initialCapacity)
              构造一个具有指定初始容量的空列表
    new ArrayList(1);这个调用的是第三个构造函数;
    new ArrayList(new TreeSet());调用的是第二个构造函数。。