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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© pp19940608 初级黑马   /  2017-8-19 23:36  /  2268 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

这题有一点点小复杂,需要细心处理,该题主要是考验我们的一个处理数组数据的基本能力和方法的编写能力。

import java.util.Arrays;

import sun.awt.SunHints.Value;

/*
  
  分析以下需求,并用代码实现
        1.定义一个方法equals(int[] arr1,int[] arr2),功能:比较两个数组是否相等(长度和内容均相等则认为两个数组是相同的)
        2.定义一个方法fill(int[] arr,int value),功能:将数组arr中的所有元素的值改为value
        3.定义一个方法fill(int[] arr,int fromIndex,int toIndex,int value),功能:将数组arr中的元素从索引fromIndex开始到toIndex(不包含toIndex)对应的值改为value
        4.定义一个方法copyOf(int[] arr, int newLength),功能:将数组arr中的newLength个元素拷贝到新数组中,并将新数组返回,从索引为0开始
        5.定义一个方法copyOfRange(int[] arr,int from, int to),功能:将数组arr中从索引from(包含from)开始到索引to结束(不包含to)的元素复制到新数组中,并将新数组返回

  
*/

public class Homework_02_Test03 {
        public static void main(String[] args) {
               
                int[] arr1={1,2,3,4,5,6,7,8,9};
                int[] arr2={1,2,3,4,5,6,7,8,9};
                int[] arr3={4,0,9,11,3,-2};
                int[] arr4={8,68,3,5,6,22};
                int[] arr5={-1,23,-3,4,6,10};
                System.out.println("arr1={1,2,3,4,5,6}");
                System.out.println("arr2={3,2,1,7,8,9}");
                System.out.println("arr3={4,0,9,11,3,-2}");
                System.out.println("arr4={8,68,3,5,6,22}");
                System.out.println("arr5={-1,23,-3,45,6}");
                System.out.println("-----------------------------------------");
               
                //equals()方法:判断两个数组是否相同;
//                System.out.println("arr1和arr2数组是否相同:");
                System.out.println(equals(arr1, arr2));
                System.out.println("-----------------------------------------");
               
                //fill()方法:将value值,赋给整个数组的每个元素;
                int value = 0;
                fill(arr2, value);
//                System.out.println("fill()方法,将value值,赋给整个数组的每个元素");
                System.out.print("新数组:");
                for (int i = 0; i < arr2.length; i++) {
                        System.out.print(arr2[i]+" ");
                }
                System.out.println();
                System.out.println("-----------------------------------------");
               
                //fill()方法:从索引值fromIndex到toIndex,包括fromIndex,不包括toIndex,将value值,赋进去;
                int fromIndex = 2;
                int toIndex = 3;
                fill(arr3, fromIndex, toIndex, value);
//                System.out.println("fill()方法,从索引值fromIndex到toIndex,包括fromIndex,不包括toIndex,将value值,赋进去");
                System.out.print("新数组:");
                for (int i = 0; i < arr3.length; i++) {
                        System.out.print(arr3[i]+" ");
                }
                System.out.println();
                System.out.println("-----------------------------------------");
               
                //方法copyOf(),功能:将数组arr中的newLength个元素拷贝到新数组中,并将新数组返回,从索引为0开始
                int newLength = 4;
//                copyOf(arr4, newLength);
                int[] newArr1 = copyOf(arr4, newLength);
                System.out.print("新数组:");
                for (int i = 0; i < newArr1.length; i++) {
                        System.out.print(newArr1[i]+" ");
                }
                System.out.println();
                System.out.println("-----------------------------------------");
               
               
                //copyOfRange()方法:将数组arr中从索引from(包含from)开始到索引to结束(不包含to)的元素复制到新数组中,并将新数组返回
               
                int from = 3;
                int to = 6;
                int[] newArr2 = copyOfRange(arr5, from, to);
//                System.out.println("将数组arr中从索引from(包含from)开始到索引to结束(不包含to)的元素复制到新数组中,并将新数组返回");
                System.out.print("新数组:");
                for (int i = 0; i < newArr2.length; i++) {
                        System.out.print(newArr2[i]+" ");
                }
                System.out.println();
                System.out.println("-----------------------------------------");
        }
       
       
        public static boolean equals(int[] arr1,int[] arr2){
                return Arrays.equals(arr1, arr2);
        }
        public static void fill(int[] arr,int value){
                for (int i = 0; i < arr.length; i++) {
                        arr[i]=value;
                }
        }
        public static void fill(int[] arr,int fromIndex,int toIndex,int value){
                for (int i = fromIndex; i < toIndex; i++) {
                        arr[i] = value;
                }
        }
        public static int[] copyOf(int[] arr, int newLength) {
                int[] newArr1 = new int[newLength];
                for (int i = 0; i < newLength; i++) {
                        newArr1[i]=arr[i];
                }
                return newArr1;
        }
        public static int[] copyOfRange(int[] arr,int from, int to){
                int length = to - from ;
                int[] newArr = new int[length];
                int j = 0;
                for (int i = from; i < to; i++) {
                        newArr[j]=arr[i];
                        j++;
                }
                return newArr;
        }
}


方法:
        方法的注意事项:
                1:修饰符(static) 返回值 方法名(数据类型 变量名, ......){}
                2:方法的写的位置:跟主方法 平级
                3:方法  和 方法 之间 空一行
                4:方法 不调用 是不执行的       
        注意:
                方法不可以提高程序的运行效率

        方法的好处:
                1:提高代码的复用性.
                2:提高阅读性.
               
        return 的作用:
                一般来说两个作用:
                        1:结束当前方法
                        2:返回对应的值(只能是用在 返回值不是 void的情况下)
                        当方法的修饰 是 void
                                return的作用只能是  第一项.
        在一个类中 相同的方法名 不同的参数列表 就是重载.       
                注意 :  跟参数的 变量名字 没有关系.
        方法重载的好处 :
                1:少记忆方法名字
格式:
        public static 数据类型 方法名(参数列表){
        }

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马