我一直想不通这两者有什么联系和区别,到底ArrayList[]是动态数组还是ArrayList()是??
我想从一个数组里提取一个数,并且数组里的元素同时去掉这个数··用前者的话不能删减,用后者的话初始化的元素都成了0了·完全不能满足我的要求··各位大侠帮帮忙

解决方案 »

  1.   

    http://www.360doc.com/relevant/06/0902/23/11053_197249.shtml
      

  2.   

    我肤浅了,莫非
    ArrayList[] 是集合数组,
    ArrayList() 是集合?
      

  3.   

    ArrayList()是动态数组,ArrayList[]是Arraylist对象的数组
      

  4.   

    ArrayList list = new ArrayList();
    ArrayList list2 = new ArrayList();
    ArrayList list3 = new ArrayList();

    ArrayList[] lists = new ArrayList[] {list,list2,list3};
      

  5.   

    ArrayList[]是一个数组
    ArrayList()是一个对象
      

  6.   

    如果把ArrayList也理解为数组的话,那ArrayList[]就是数组的数组了。
      

  7.   

    ArrayList[]是一个数组,数组里面的每个元素都是一个ArrayList对象,而ArrayList()只是一个ArrayList对象
      

  8.   

    建议你看一下java API 中的 ArrayList 
      

  9.   

    这里的动态是指“数组的大小可以改变”。
    ArrayList(即你说的ArrayList())是一个动态数组。
    ArrayList[] 是一个数组,且该数组中的元素都必须是 ArrayList 这个动态数组。ArrayList[] 是非动态的,它在创建时就被指定了大小,且该大小再不能改变。
    如果使用数组可以这样实现: Integer[] aa = {1,2,3};
    int a = aa[0];
    aa[0] = null;//实现删除
    for(Integer i : aa){
    System.out.println(i);
    }如果使用动态数组,即 ArrayList 可以这样实现: ArrayList<Integer> arrayList = new ArrayList<Integer>();
    arrayList.add(1);
    arrayList.add(2);
    arrayList.add(3);

    int i = arrayList.get(0);
    arrayList.remove(0);// 实现删除
    for(int a : arrayList){
    System.out.println(a);
    }
      

  10.   


    楼主想说arr[]和ArrayList吧楼主可以这样用:LinkedList<类型> list = new LinkedList<类型>();
    list.addAll(Arrays.asList(数组名));
    这样,数组中的元素加到list里了。LinkedList增加删除元素效率高
      

  11.   

    多谢大家的参与··可是为什么使用ArrayList()的时候在括号里定义了容量··得不到像ArrayList[]一样,里面的元素自动的从0-长度排呢?
      

  12.   

    额··太打击了吧??那我贴代码吧··
    public class Card {
    //定义动态数组并初始化
    ArrayList arr=new  ArrayList(52);
    //从1--52数组得到一随机数
    int shu = (int) (Math.random() * (arr.size()));
    public class Main { /**
     * @param args
     */
    public static void main(String[] args) {
    // TODO Auto-generated method stub Card c=new Card();
    System.out.print(c.huase());
    c.dianshu();
    int shu=c.shu;
    这样··得到的shu是初始化时候的0,而不是一个0--52的随机数··明白?
    而且··我想在得到随机数后将这个随机数删除掉··
      

  13.   

    表达的确不敢恭维。public class Card {
        private List<Integer> list;    public int getShu() {
            return shu;
        }    private int shu;    public Card() {
            list = new ArrayList<Integer>();
            for (int i = 1; i <= 52; i++) {
                list.add(i);
            }
            random();
        }    public void random(){
            shu = (int) (Math.random() * 52);
        }    public Integer remove(){
           return list.remove(shu);//此方法是重载的。remove(int index)   remove(Object o) 这里用的第一个
        }
        public static void main(String[] args){
            Card c = new Card();
            c.remove();
            c.random();
            c.remove();
        }
    }
      

  14.   

    ArrayList 是一个对象。  是java 自己封装的一个动态数组。[] 是表示数组。
      

  15.   

    其实蛮简单的一个问题,ArrayList()本身是一个List集合,其实内部是一个可变长度的数组,而ArrayList[]这个就是你自己定义的一个规定大小的数组(在初始化的时候给定大小),至于ArrayList集合内部怎么实现可变大小,参考JDK源代码。
      

  16.   

    ArrayList()既不是数组也不是对象,而是某个对象的构造方法吧:)前面不加new会报错。
      

  17.   

    不知道楼主知道泛型不?
    如果知道话可以这样理解:
    ArrayList<ArrayList<Object obj>>()相当于楼主所说的ArrayList[]
    而ArrayList就是相当于ArrayList<Object obj>
    只是这里面有区别,ArrayList[]是有长度限制的。
    而ArrayList<ArrayList<Object obj>>()和ArrayList<ArrayList<Object obj>>()是可以动态增长的。建议楼主去看下马士兵的J2SE课程,很经典的。