如何在JAVA方法中返回多个对象,谁能解决给200分。 用Hashtable,Vector,数组都成啊! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 把对象装在一个Vector里面,然后返回Vector对象 用容器对象了,像Hashtable、Vector、ArrayList都可以。把要返回的对象放到容器中,然后返回容器对象就可以了。 能,我用的都可以,想传递什么都可以,有点像C++里的指针,传的是对象本身,除非你clone了它 java是按地址传递的,所以你可以在外部定义一个ArrayList之类的东西,在你的方法中改变其中的内容,就可以了! 可以啊。java中本来就是对对象传地址。你传一个数组过去就行。 Vector是线程同步的,所以如果你的代码中没有同时访问的情况下,尽量不要用Vector,它的效率比较低,建议用ArrayList,你可以自己做个试验,就会发现同等情况下,Vector要慢得多:) int function(Object a[]){ a[0]=... a[1]=... ...}Object[] arr = ...function(arr); 回复人: shpblk(sheepblack) ( ) 信誉:100 2002-06-12 15:43:00 得分:0 int function(Object a[]){ a[0]=... a[1]=... ...}Object[] arr = ...function(arr); 这个程序中要先创建这个数组,然后传递这个数组给方法,在方法中修改其中的内容。能否在调用方法前,不创建,在方法中来创建这个数组再返回。因为在调用方法前不知道要创建多大的数组。 你为什么不这样呀: Object a[]function(){ Object a[]=new Object[你需要的]; a[0]=... a[1]=... ... return a;}Object[] arr = function(); 或则,Vector与数组类似;int function(Vector vt){ vt.add(obj1); vt.add(obj2); ...}Vecotr vt = ...function(vt);Object obj=vt.get(index); java中参数传递的问题分几种。1,简单类型,如:int, long, boolean等是传值的2,对象类型,如:vector, hashtable等是传址的。3,String类型,本应是传址,但因为用了String Pool的原因,实际上是传值的。另,如果对象类型实现了序列化,则也变成传值的了。 其实用Vector可以很简单的解决上面的问题。但如果必须返回数组的话,你可以在方法里先用Vector临时存数据,然后转换成数组返回。具体如下:Vector v=new Vector();v.add(obj1);.........v.add(objn);Object[] rtn = new Object[v.size()] ;rtn=v.toArray();return rtn; 大家来看一看这个:http://www.csdn.net/expert/topic/799/799900.xml?temp=3.342837E-02 怎么没有人说这种方法:public class TestBack { private int intBack; private String stringBack; private byte byteBack; private char charBack; …… //定义的各种需要返回的类型变量 public TestBack(参数 in) { …… //处理,赋值等 } public int getIntBack() { return intBack; } public String getStringBack() { return stringBack; } …… //其它类推}这样其实也可以达到返回不同类型变量的目的。 我同意webwing(kevin) 的讲法。用vector应该可以解决你的问题,但是,从运行效率角度将,你最好用arraylist也就是,前面有人将的关于 同步问题。不要太苛刻了,vector已经可以了。 其实我是要通过参数传递的方法来返回一个对象,结果作为操作是否成功的标志。如下C++代码实现的功能在JAVA中如何实现,BOOL funtion(mydataclass * &a){ a=new mydataclass; ... return TRUE;}mydataclass * aa;if(funtion(aa)) {...}这种简洁明了的C++在JAVA中是不是无法实现,因为在JAVA中你无法取地址。 呵呵,当然可以了,C++用指针,java用对象引用,都是一样的,没有任何区别,实际上也是用指针传递了,基本上可以理解引用就是指针。 楼上的,JAVA用对象引用相当于C++中的指针,可是C++中有对指针的引用,如上面的代码,JAVA中怎么办,好象没有办法吧 我想应该是和对象的引用是一回事吧!在java中就不要去理会指针了,否则你会被C++搞得晕头转向的。都是对象传来传去。没有任何问题的。 指针是C++的精华,在java中没有指针,我觉得很不适应,C++中很简洁的,风格很好的代码,在java中却无法实现,看来还得继续学,java的程序风格 求解线程间通信!这个程序错在那里了啊。。。。求高手说明下 关于ArrayList和LinkedList详细区别,在链表的排序这些最好统统说一下 请问FC4下自带的java环境安装在了哪里? JTextArea的问题 求助!为什么图片没显示,该如何改。问题解决就结帖! 中文空格匹配,急 迷茫几天了:这个简单的程序运行结果怎会是怎样的?(有关正则表达式的)大家帮我分析一下。 请进 查看局域网在线IP的java源代码 请问:java中,如何将一个char型字符按十六进制整数打印出来? 如何将JAVA程序编译成可直接使用形式,像exe等直接运行的 急问
{
a[0]=...
a[1]=...
...
}
Object[] arr = ...
function(arr);
int function(Object a[])
{
a[0]=...
a[1]=...
...
}
Object[] arr = ...
function(arr);
这个程序中要先创建这个数组,然后传递这个数组给方法,在方法中修改其中的内容。能否在调用方法前,不创建,在方法中来创建这个数组再返回。因为在调用方法前不知道要创建多大的数组。
Object a[]function()
{
Object a[]=new Object[你需要的];
a[0]=...
a[1]=...
...
return a;
}
Object[] arr = function();
{
vt.add(obj1);
vt.add(obj2);
...
}Vecotr vt = ...
function(vt);Object obj=vt.get(index);
1,简单类型,如:int, long, boolean等是传值的
2,对象类型,如:vector, hashtable等是传址的。
3,String类型,本应是传址,但因为用了String Pool
的原因,实际上是传值的。另,如果对象类型实现了序列化,则也变成传值的了。
但如果必须返回数组的话,你可以在方法里
先用Vector临时存数据,然后转换成数组返回。
具体如下:
Vector v=new Vector();
v.add(obj1);
.........
v.add(objn);
Object[] rtn = new Object[v.size()] ;
rtn=v.toArray();
return rtn;
http://www.csdn.net/expert/topic/799/799900.xml?temp=3.342837E-02
public class TestBack {
private int intBack;
private String stringBack;
private byte byteBack;
private char charBack;
……
//定义的各种需要返回的类型变量
public TestBack(参数 in) {
……
//处理,赋值等
}
public int getIntBack() {
return intBack;
}
public String getStringBack() {
return stringBack;
}
……
//其它类推
}
这样其实也可以达到返回不同类型变量的目的。
用vector应该可以解决你的问题,但是,从运行效率角度将,你最好用arraylist
也就是,前面有人将的关于 同步问题。
不要太苛刻了,vector已经可以了。
BOOL funtion(mydataclass * &a)
{
a=new mydataclass;
...
return TRUE;
}mydataclass * aa;
if(funtion(aa)) {
...
}这种简洁明了的C++在JAVA中是不是无法实现,
因为在JAVA中你无法取地址。
可是C++中有对指针的引用,如上面的代码,
JAVA中怎么办,好象没有办法吧
在java中就不要去理会指针了,否则你会被C++搞得晕头转向的。都是对象传来传去。没有任何问题的。
在java中没有指针,我觉得很不适应,
C++中很简洁的,风格很好的代码,在java中却无法实现,
看来还得继续学,java的程序风格