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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 杨立考 中级黑马   /  2012-9-26 02:12  /  1325 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 屈俊材 于 2012-9-26 07:47 编辑

{7,3,9,8,2,5}对这个数组的元素进行反转。尽量能加点注释说明下,谢了。

评分

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

查看全部评分

2 个回复

倒序浏览
import java.util.Arrays;

public class TestRoolback {

        public static void main(String[] args) {
                int[] a = {7,3,9,8,2,5};
                int[] b = new int[a.length];
                for (int i = 0; i < a.length; i++) {
                        b[b.length - 1 - i] = Arrays.copyOfRange(a, i, i + 1)[0];// 从一个数组复制到另一个数组,指定长度范围,Arrays.copyOfRange()返回的还是一个a数组
                }
                for (int i : b) {
                        System.out.print(i + "\t");
                }
        }
}

评分

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

查看全部评分

回复 使用道具 举报
本帖最后由 史龙贤 于 2012-9-26 02:51 编辑

楼上的那位高明,直接掉工具类中的方法,我就不画蛇添足了,我搞搞原始的,笨点的。
开发时,有方法尽量找现成的方法为上策!

/*
需求:对给定的数组进行反转。
{7,3,9,8,2,5} ---> {5, 2, 8, 9, 3, 7}
思路:反转数组,就是数组中对应的元素交换位置,例如数组中最后索引的元素与头索引的元素交换位置,依次类推。
那么可以定义两个指针(变量),一个从头向后走,一个从尾向前走,(我这句话的意思是定义两个变量,初始化值为0和数组长度-1。)
指针行走的过程我让它for循环,循环过程中变量一个自增,一个自减。(不知道这样写,您明白了吗?)
哦,忘记告诉您循环条件了,如果头指针=尾指针,那么就是中间元素了,如果头指针超过了尾指针,那么还用换吗,您慢慢想,不理解画图来比划。所以循环条件是头指针必须小于尾指针(肯定尾指针要大于头指针了)。
想到这里,聪明的您是否已经明白了呢?我真实王母娘娘的裹脚布又长又臭!

步骤:1、定义数组的反转方法,应该将数组作为参数接收。
      2、方法中定义for循环,应该有两个变量作为指针。按上面思路走啊走,走到条件不满足为止。
      3、单独定义交换元素的方法。
      4、单独定义打印数组的方法。
      5、测试!

*/
class ArrayTest {
        public static void main(String[] args) {

                int[] arr = {7,3,9,8,2,5};
                reserveArray(arr);
                printArray(arr);
        }
              //反转数组。
        public static void reserveArray(int[] arr) {
                             //定义两个指针,头start,初始化值为0,尾end,初始化值为最后一个元素索引。
                  // 循环开始,头向尾走,自增;尾向头走,自减,条件:头的位置超过尾的位置。
                for (int start = 0, end = arr.length - 1; start < end; start++, end--) {
                        swap(arr, start, end);
                }
        }
        //交换数组中元素位置。
        public static void swap(int[] arr, int start, int end) {
                int temp = arr[start];
                arr[start] = arr[end];
                arr[end] = temp;
        }
        //打印数组
        public static void printArray(int[] arr) {
                System.out.print("int[] arr = {");
                for (int x = 0; x < arr.length; x++) {
                        if (x != arr.length - 1)
                                System.out.print(arr[x] + ", ");
                        else
                                System.out.print(arr[x]);
                }
                System.out.println("}");
        }
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马