我们最近的作业要一个创建一个class,要有下列的数据类型:
public class Abb
{
  private String[] fullmane = new String[1];
 ...
}关键就在于要求fullname[]数组的是大小是可变的,而且必须用这种方式不允许ArrayList。 我只有一种方法:
public void add(String t)
{
 public String[] temp = new String[fullname.length()+1];
 for (int i = 0; i != fullname.length(); ++i )
  temp[i]=fullname[i];
 temp[fullname.length()] = t;
}但是这样是不是会造成fullname原来使用的内容被浪费了啊? 那些原来占用的内存不会不释放吧?
希望大家指教!! 我是菜鸟!!

解决方案 »

  1.   

    public class Abb
    {
      //元素个数
      private int elementNum = 0;
      //数组长度
      private int length = 10;
      private String[] fullmane = new String[length];
      public void add(String t){
          if(elementNum == length){
              //扩充数组,新建一个数组,length 是原来length的2倍,赋值原数组元素到新数组
          }
          fullmane[element++] = t; 
      }
    }
      

  2.   

    1L的方法是正确的,垃圾回收的事情不用你去控制,你也没有办法控制的,JVM会自动回收