黑马程序员技术交流社区
标题:
关于Object数组
[打印本页]
作者:
endlessjoker
时间:
2014-3-21 10:23
标题:
关于Object数组
Object... args 和Object[] args请详细解释一下区别,以及什么时候用Object...好,什么时候用Object[]好
作者:
韩基鑫
时间:
2014-3-21 10:54
前者就是里面是动态参数,比如说参数的个数不限;例子public class Test { public static void f(Integer... args) { for(Integer i : args) { System.out.println(i + " "); } System.out.println(); } public static void main(String[] args) { f(1,2,3); f(4,5,6,7,8); }}就
作者:
上官睿鹏
时间:
2014-3-21 13:39
看下面程序估计你就明白了
class Demo{
public static void main(String[] args){
String s1 = "a";
String s2 = "b";
String s3 = "c";
Object[] obj = {s1, s2, s3};//将s1,s2,s3装入数组
//f()方法可以这样调用,随你传入多少个参数
f(s1, s2, s3);
f(s1, s2);
f(s1);
h(obj); //而h()方法调用只能传入一个数组类型参数
}
public static void f(Object...args){//这个方法里面可以传指定个数Object对象然后返回一个Object数组args
System.out.println(Arrays.toString(args));//打印args数组
}
public static void h(Object[] args){ //这里面只能传Object数组类型对象
System.out.println(Arrays.toString(args));//打印args数组
}
}
复制代码
作者:
乔钰博
时间:
2014-3-21 13:50
Object... args是可变参数,一般用于传递时不知道参数的个数,或者参数个数不固定,Object[] args是数组,需要实现定义好一个数组,然把数据放入到数组中,再将数组传递到方法中。
public class Test {
public static void main(String[] args) {
method1("a","b","c");
method1("a","b","c","d");
Object[] obj = new Object[]{"x","y","z"};
method2(obj);
}
public static void method1(Object...obj){
System.out.println(Arrays.toString(obj));
}
public static void method2(Object[] obj){
for(int i=0;i<obj.length;i++){
System.out.print(obj[i]+" ");
}
}
}
复制代码
运行结果为:[a, b, c]
[a, b, c, d]
x y z
作者:
青木郎
时间:
2014-3-21 13:54
一个是动态参数,一个数数组参数,数组是要占据内存的,当你不想占据太多内存,或者写数组太麻烦,又或者后面没有用到数组,而这里有需要多个相同类型参数时,就可以用动态参数,数组参数就是传一个数组进去,如果之前已经创建了一个数组,这里又正好要用到一列相同类型的数,并且与数组类型相同,那么用数组简单,省的还要写一串数字
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2