最近正在做一个小项目 需要用到长度不固定的数组,上网差了N多资料,总觉得不符合自己的要求,果断自己写了一个,总体思想还是不变的。上代码·····package com.zcf.graduation.utils;public class Array { private int length;
private Object[] array;
private Object[] old;
private int index; public Array add(Object obj){

if(this.array == null || this.array.length <= 0){
this.index = 0;
this.length = 1;
}else{
this.index++;
this.length++;
}
this.old = this.array;
this.array = new Object[this.length];
if(this.old != null && this.old.length > 0){
for(int i = 0;i<this.old.length;i++){
this.array[i] = this.old[i];
}
}
this.array[this.index] = obj;
return this;
}

public Object[] getArray() {
return array;
} public String toString(){
StringBuffer sb = new StringBuffer();
for(Object obj : array){
sb.append(String.valueOf(obj));
}
return sb.toString();
}
}
java

解决方案 »

  1.   

    ArrayList中的toCharArray()方法
      

  2.   

    数组还是有一些功能ArrayList是实现不了的,
    楼主的方法其实就是等于自己写了一个list
    ArrayList的本质就是数组
      

  3.   

    这活生生的一个 ArrayList 的雏形啊。
      

  4.   

    楼主说说 arraylist 不符合要求的地方啊 
      

  5.   

    炫耀贴,为什么不用System.arraycopy
      

  6.   

    呃  当时也没想那么多  我想过用arrayList  但是担心arrayList  toArray后list中的的元素顺序会改变  所以就这样写了个   至于写这篇文章 我只是想怕自己忘记以及让有这方面需要的童鞋参考一下  并没有什么炫耀的意思
      

  7.   

    谁说说什么地方数组能用arraylist不能用?
      

  8.   

    list接口的实现有很多种,arraylist是有序的,并且toarray也是有序的。如果对顺序敏感,可以用linkedlist。
      

  9.   

    +1.
    而且LZ这个效率很低 每次ADD都要重新生成一个数组 ArrayList每次不够的时候长度加倍 是不会像LZ这样每次都需要重新创建的
      

  10.   

    LZ也是用的数组。 数组的什么功能arraylist不能实现?
      

  11.   

    其实arrayList这个真的很难理解啊
      

  12.   


    ArrayList不能存储不同数据类型元素,如:有String a和Integer b,ArrayList不能同时存储a和b,而List<>就可以,这就是ArrayList过时的原因
      

  13.   

    上面说的不准确,是可以存储的,但在使用的时候很可能会报类型不匹配的错误,还会影响性能,所有说ArrayList不是类型安全的
      

  14.   


    ArrayList不是List的一个实现吗?
    ArrayList过时?你现在用什么?
      

  15.   

    Java中的数组还不能满足你的需求呀
      

  16.   

    ArrayList好多方法都是native修饰的,掉的是底层接口,效率上肯定比你这个要快。
      

  17.   


    ArrayList<Object> 不能储存a和b?
      

  18.   


    你的发言很难回复,因为找不到几个对的地方。
    “ArrayList不能同时存储a和b,而List<>就可以”
    实现类做不到的事情,一个接口却做到了,这显然是不可能的。
    <>范型在编译阶段就被消化了,运行时根本没有所谓的范型。所以<>对于提升运行时的效率和安全性没有任何帮助。一句话就能错得如此没谱。