List<?>[] intArr=new ArrayList<?>[10];//这句是什么意思?是不是跟List[] intArr=new ArrayList[10]效果一样?
List<Integer> intLst=new ArrayList<Integer>();
intLst.add(32);
List<String> strLst=new ArrayList<String>();
strLst.add("apple");
intArr[0]=intLst;
intArr[1]=strLst;
不懂

解决方案 »

  1.   

    楼主是不懂范型还是不懂那个“?”号。不懂范型的话可以网上搜索一下,至于ArrayList<?>中问号是一个类型通配符,是任何泛型 List 的父类型,所以您完全可以将 String,Integer等存储在其中。
      

  2.   

    List 类是 ArrayList 类的泛型等效类。
    ArrayList是List的实现类,此外,实现了List接口的还有很多
    AbstractList, AbstractSequentialList, ArrayList, AttributeList, CopyOnWriteArrayList, LinkedList, RoleList, RoleUnresolvedList, Stack, Vector 
    都是List的实现类建议去看看API,哪里相信比你来这里问好多了。
    API名称:JDK_API_1_6_zh_CN.CHM
    下载地址网上搜索下,多的是
      

  3.   

    <?> 恩,这个只是一个泛型,你也可以写成<T> <D>...反正随便你写
    泛型,API有详细介绍
      

  4.   

    同问:
    List<?>[] intArr=new ArrayList<?>[10];//这句是什么意思?是不是跟List[] intArr=new ArrayList[10]效果一样?
      

  5.   


    没错结果是一样的。唯一不一样的是,第一种方式消除了警告。
    你如果用IDE直接把鼠标放到intArr变量上面,就可以看到IDE的提示。
      

  6.   

    List<?> 等效于List<? extends Object>,确定List 容器存储数据的类型比如可写成List<? extends InputStream>则在参数列表传递时你可以传递 存储类型为InputStream 子类对象的集合
    public static void test(){
    te(new ArrayList<FileInputStream>());
    }
    public static void te(List<? extends InputStream> list)
    {

    }如上,如果不是InputStream的子类则编译不通过
      

  7.   

    new ArrayList<?>[10]是不是等价与new ArrayList[10]呢?
      

  8.   

    效果一样吧
    List<? extends Object>,即可存储的类型为Object的子类型,java所有对象默认是Object的子类
    ,即所有类型元素的List都支持,这样没有起到有界的作用,和List无差异了