首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

关于形参数组的扩容有关问题

2012-11-03 
关于形参数组的扩容问题import java.util.Arrayspublic class AnimalsDemo{public static void main(Stri

关于形参数组的扩容问题
import java.util.Arrays;
public class AnimalsDemo{
  public static void main(String[] args){
  Animal[] animals = new Animal[2];
  animals[0] = new Animal("dog");
  animals[1] = new Animal("cat");

  add(animals,new Animal("bird"));
  System.out.println(Arrays.toString(animals));
  }
  public static void add(Animal[] animals,Animal animal){
  if(animals!=null){
  animals=Arrays.copyOf(animals,animals.length+1);
  animals[animals.length-1] = animal;
  }else{
  System.out.println("数组为空");
  }
  }
}
class Animal{
  String name;
  public Animal(String name){
  this.name = name;
  }
  public String toString(){
  return this.name;
  }
}
最后输出的结果是[dog,cat],调用add()方法没有达到扩容效果,为什么?求大虾帮帮忙,谢谢!

[解决办法]
import java.util.Arrays;
public class AnimalsDemo{
public static void main(String[] args){
Animal[] animals = new Animal[2];
animals[0] = new Animal("dog");
animals[1] = new Animal("cat");

add(animals,new Animal("bird"));
System.out.println(Arrays.toString(animals)+":"+animals.length);
}
public static void add(Animal[] animals,Animal animal){
if(animals!=null){
animals=Arrays.copyOf(animals,animals.length+1);
animals[animals.length-1] = animal;
System.out.println(animals.length+"----------");
}else{
System.out.println("数组为空");
}
}
}
class Animal{
String name;
public Animal(String name){
this.name = name;
}
public String toString(){
return this.name;
}
}
执行下吧,就知道问题在哪了。
[解决办法]

探讨
数组在java里不是对象么?add()方法中,形参和实参数组同时指向同一引用数组对象,方法执行完,实参数组应该也扩容了? 为什么没扩容呢

热点排行