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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. class Reve
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 int[] list = {1,2,3,4,5};
  6.                 reverse(list);
  7.                 for (int i = 0; i< list.length;i++)
  8.                
  9.                         System.out.println(list[i]+ " ");
  10.                
  11.                
  12.         }
  13.         public static void reverse(int[] list){
  14.                 int[] newlist = new int[list.length];

  15.                 for (int i = 0;i<list.length ;i++ )
  16.                
  17.                         newList[i] = list[list.length - 1 - i];
  18.                        
  19.                
  20.                 list = newList;
  21.         }
  22. }
复制代码

下面这个方法不知道起到了什么作用,有木有它,输出结果都一样~~~

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 神马都是浮云

查看全部评分

4 个回复

正序浏览
赵晓海 发表于 2013-12-21 00:38
public static void reverse(int[] list)------这一句里面的"int[] list"相当于重新new了一个list数组对象 ...

恩恩,恍然大悟,谢谢大家了:lol
回复 使用道具 举报
本帖最后由 赵晓海 于 2013-12-21 00:50 编辑

public static void reverse(int[] list)------这一句里面的"int[] list"相当于重新new了一个list数组对象(可以称作参数list)。

这个参数list对象和main方法中的list完全是两个对象。
reverse中最后的赋值语句只是把newList的地址赋值给参数list,但是main方法中的list并没有变化。

该怎么修改楼上已经给出方法,我就不赘述了。

评分

参与人数 1黑马币 +9 收起 理由
FFF + 9 赞一个!

查看全部评分

回复 使用道具 举报
下面的是一个反转功能,你好像没写对。
你把newlist返回去,用list接收一下。
你现在输出的 1.2.3.4.5
调用reverse()方法
就会打出5.4.3.2.1

评分

参与人数 1黑马币 +9 收起 理由
FFF + 9 神马都是浮云

查看全部评分

回复 使用道具 举报
哥们,你的反转方法是无返回值的。你最后的赋值行为,其实原来数组并没有收到,所以没变化

你应该吧方法的返回值设成 int []  然后让  list = reverse(list);  这样就行了

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马