A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© slatop@qq.com 中级黑马   /  2013-6-10 22:44  /  1465 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 slatop@qq.com 于 2013-6-13 18:03 编辑

  郁闷了。。。一个函数须要多个返回值。java里咋处理呢。。。。
       比如说,一个函数接收一个字符串,我须要返回这个字符串中的字符串中字符'a'的个数和'b'的个数。
  别告诉我说写两个函数,那须要写两个循环,执行时间减低了一倍。如果传进来的是两个非常大个的文件那不是哭了。当然这个问题可以用正则解决。我这只是举例说明而已。总知我就是想让函数返回两个值。
  
  java里没有可以对内存地址直接操作的功能,传递进函数的任何东西都是以复本的形势出现在函数内的。所以无法使用参数返回多个值。

  我只想到两种办法,但是都很水。
1.传递进来一个数组,通过数组加下标的形势把结果放进数组中,这样函数返回后数组中的值会被改变。
2.传递进来一个对象,该对象包含两个成员数据,在函数体内把结果赋给这两个成员数据,然后在调用处再从这个对象里取。

以上办法都好垃圾,大家齐思广智帮我想一下

评分

参与人数 1技术分 +1 收起 理由
黑马伍哲沂 + 1 神马都是浮云

查看全部评分

6 个回复

倒序浏览
传递一个对象挺好,就行C语言的结构体一样
回复 使用道具 举报
pys200603027 发表于 2013-6-10 22:51
传递一个对象挺好,就行C语言的结构体一样

太不好了。仅仅为了拿两个值,就要弄出个对象来,杀鸡用了牛刀。C中传结构体是为了填充这个结构体以备之后使用的,才会这么做的。在C中传两个指针参数或引用参数进来就解决了。java中没指针,引用传进来也是复本
回复 使用道具 举报
java有垃圾回收机制,用完就释放呀
回复 使用道具 举报
pys200603027 发表于 2013-6-10 23:06
java有垃圾回收机制,用完就释放呀

垃圾收回仅仅是免去了手动写内存释放的代码,何况释放也要等到对应的引用超出作用域,何况超出作用域后回收线程也不一定马上就会收,就算这一切都说的过去,那也不能因为内存可以回收就把内存使用造啊。
为了两个参数,最多也就几个字节的功能,要去建立一个几十个字节的对象。一个不明显,10个呢,100个呢,1000个呢。实际开发中什么情况都有可能发生。最危险的内存浪费行为就是把几个字节不当回事的行为,你没听说过别把豆包不当干粮的事吗,哈哈
回复 使用道具 举报
不太懂得你要表达的意思,一个方法的返回值只能有一个吧。
回复 使用道具 举报
返回值只有一个,你只能封装成对象等,一般用map比较好吧?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马