java 中如果用可增加数组实现 ArrayList
望高手指教。
谢谢

解决方案 »

  1.   

    看看ArrayList源代码,估计你就有想法了啊!
      

  2.   

      楼主的表达真牛X  
        我只能说 add();  吧
      

  3.   

    重来没听过有可增加数组的概念,因为数组的一旦声明,其大小就是固定的。这也是为什么java中会引入类集的概念(包括ArrayList)。楼主有时间能解释下,什么叫可增加的数组。
      

  4.   


    樓主的意思應該是  “ java 中如何用可增加数组实现 ArrayList”那用 add 和 get() 就可以了啊 
      

  5.   

    不好意思,表达错了,7楼说得对,java 中如何用可增加数组实现 ArrayList
    谢谢大家。
      

  6.   


    public class Test {

    private String[] users ; //声明一个String 数组,用来保存用户姓名
    private int index = 0; //记录数组下标值

    public Test(){
    users = new String[3]; //初始化数组
    }

    /**
     * 往数组中添加数据
     * @param s
     */
    public void add(String s){
    if(index == users.length){ //判断数组是否已经装满
    String[] temp = new String[users.length+1]; //开辟一个临时数组
    for(int i=0; i<users.length; i++){ //把旧数组中的数据放入临时数组
    temp[i] = users[i];
    }
    users = temp; //把临时数组的引用在交给以前的数组
    }
    users[index] = s;
    index ++ ; //每存放一个,index 加 1
    }

    /**
     * 获取所有用户
     * @return
     */
    public String[] findAll(){
    return users;
    }

    public static void main(String[] args) {
    Test t = new Test();

    //添加测试数据,随便添加多少都行
    t.add("a");
    t.add("b");
    t.add("c");
    t.add("d");

    //遍历数组
    String[] str = t.findAll();
    for(String s : str){
    System.out.println("---" + s);
    }

    }
    }不知道楼主是不是这个意思,希望对你有帮助
      

  7.   

       强烈建议楼主去看看数据结构,看看数组和ArrayList(也就是链表)之间的区别,数组一旦声明好大小以后就不能更改了,但是链表却可以改变,这在一定的程度上也要得益于链表在插入数据的时候所付出的代价比数组小,数组在增加数据的时候,可能要“惊动”整个数组成员,,但是链表却不需要,他只需要改变相邻的两个数据的前指针和后指针就可以了 。
       可能我说的不是很清楚 ,但是希望楼主在学习java的同时,也偶然看看数据结构 
    PS:本人也是小菜 愿与楼主共同进步。
      

  8.   

    ArrayList本身就是用数组实现的, 看看源码吧
      

  9.   

    楼主的表达太风趣了吧,我只能说add()和addAll();
      

  10.   

        public void ensureCapacity(int minCapacity) {
    modCount++;
    int oldCapacity = elementData.length;
    if (minCapacity > oldCapacity) {
        Object oldData[] = elementData;
        int newCapacity = (oldCapacity * 3)/2 + 1;
             if (newCapacity < minCapacity)
    newCapacity = minCapacity;
                // minCapacity is usually close to size, so this is a win:
                elementData = Arrays.copyOf(elementData, newCapacity);
    }
        }