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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 净坛使者 中级黑马   /  2014-1-2 22:45  /  1353 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

各位大神,请问nt[] arr = {3,2,1,6,5,4};如何使用一个变量,就能是数组内的所有成员进行前后的调换

评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

7 个回复

正序浏览

这是我的课堂作业,你可以参考一下,各位帮优化.


  1. class arrbianlifanzhuan {

  2.         public static void main(String[] args) {
  3.                 int[] arr = {1,13,14,21,2,3,5,3,45,6,67,54,6,7,87,4,54,4,34,6,64,6};
  4.                 System.out.println(toArr(arr));
  5.                 System.out.println("==================================================");
  6.                 reverse(arr);//调用倒序方法
  7.                 System.out.println(toArr(arr));

  8.         }
  9.         //打印字符串方法
  10.         static String toArr(int[] arr) {
  11.                 String temp = "[";//字符串前加上中括号
  12.                 for (int i = 0;i < arr.length ;i++ )
  13.                 {
  14.                         if (i != arr.length - 1)//判断,不是最大索引,就在后面加上逗号
  15.                         {
  16.                                 temp = temp + arr[i] + ",";
  17.                         }
  18.                         else
  19.                         {
  20.                                 temp = temp + arr[i] + "]";//判断,如果是最后一个字符串,则加上左中括号
  21.                         }
  22.                 }
  23.                 return temp;
  24.         }
  25.         //字符串反转的方法
  26.         public static void reverse(int[] arr) {
  27.                 //折半转换,循环定义最小数组指标和最大数组指标,如果最小指标小于最大指标
  28.                 //则最小指标加1,最大指标减1.
  29.                 for (int start = 0,end = arr.length-1;start < end ; start ++ , end --)
  30.                 {
  31.                         tojiaohuan(arr,start,end);
  32.                 }
  33.         }
  34.         //交换两个数组空间的值
  35.         public static void tojiaohuan (int[] arr ,int i,int j)
  36.         {
  37.                 int temp = arr[i];//定义临时变量,放入参数i的值
  38.                 arr[i] = arr[j];//把参数j的值赋给i
  39.                 arr[j] = temp;//把临时变量的值赋给j
  40.         }
  41. }
复制代码


回复 使用道具 举报
将数组进行倒叙过来就可以了
回复 使用道具 举报
代码为

  1. class DemoA {
  2.     public static void main(String[] args) {
  3.             /*原理为
  4.              * a=a+b; b=a-b;a=a-b;
  5.              * */
  6.         int[] arr = {3,2,1,6,5,4};
  7.         for (int x = 0;x < arr.length / 2 ;x++ ) {
  8.             arr[x] = arr[x] + arr[arr.length-x-1];
  9.             arr[arr.length-x-1] = arr[x] - arr[arr.length-x-1];
  10.             arr[x] = arr[x] - arr[arr.length-x-1];
  11.         }
  12.         for ( int x =0;x<arr.length ; x++) {
  13.             System.out.println(arr[x]);
  14.         }
  15.     }
  16. }
复制代码

求加分,谢谢

评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

回复 使用道具 举报
class Array
{
        public static void main(String[] args)
        {
                int[] arr = {3,2,1,6,5,4};
       
                //1.将数组反转   
                reverseArr(arr);

                //2.打印数组
                printArray(arr);

        }


        //2.将数组反转  
        public static void reverseArr(int[] arr)
        {
                //1.将0 和 arr.length_1 的角标,0++,(arr.length-1)--角标的数值依次进行对换
                //直到start >= end时,停止交换

                for(int start = 0,end = arr.length-1;start > end; start++,end--)
                {
                        int temp = arr[start];
                        arr[start] = arr[end];
                        arr[end] = temp;
                }

        }


                //3.打印数组
        public static void printArray(int[] arr)
        {
                for(int i = 0; i < arr.length; i++)
                {
                        System.out.print(arr[i]+"   ");
                }
        }


}

评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

回复 使用道具 举报
同学你好,可以在for循环中定义一个int temp变量,通过比较角标前后的大小进行互换。
回复 使用道具 举报
new 一个新数组长度等于arr.length; arr数组从尾到头遍历的同时,顺序复制到新数组中
回复 使用道具 举报
  1. class Demo {
  2.         public static void main(String[] args) {
  3.                 int[] arr = {3,2,1,6,5,4};
  4.                 printArray(arr);
  5.                 System.out.println();
  6.                 revArray(arr);
  7.                 printArray(arr);
  8.         }
  9.         public static void revArray(int[] arr) {
  10.                
  11.                 for (int x = 0;x < arr.length / 2 ;x++ ) {
  12.                         int temp = arr[x];
  13.                         arr[x] = arr[arr.length - 1 - x];
  14.                         arr[arr.length - 1 - x] = temp;
  15.                 }
  16.         }
  17.         public static void printArray(int[] arr) {
  18.                 for ( int x =0;x<arr.length ; x++) {
  19.                         System.out.print(arr[x]+",");
  20.                 }
  21.         }
  22. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

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