172.16.0.84_11.30孔鹏曌

11.30

学习内容

Arrays类

​ array:译为数组;

​ 公司、开发人员用到的数组时需求所需的功能是共性的需求,Java语言使用Arrays类提供了大多数人对数组的操作功能;

​ Arrays类在java.util包中;

​ 类对应文件;包对应目录;文件是放在目录下的,类是放在包下的;

​ Arrays类提供了很多专门操作数组的方法。

比较数组是否相等(equals)

​ 例:

public static void main5(String[] args) {
        int []num1 = {1,2,3,4,5};
        int []num2 = {1,2,3,4,5};
        int []num3 = {1,2,3,4};
        
        System.out.println(Arrays.equals(num1, num2));
        System.out.println(Arrays.equals(num1, num3));
    }

排序(sort)

例:

public static void main(String[] args) {
        int []num1 = {67,34,56,89,12,2};
        //排序前的顺序
        for (int i = 0; i < num1.length; i++) {
            System.out.println(num1[i]);
        }
        //排序
        Arrays.sort(num1);
        //排序后
        for (int i = num1.length-1; i >=0 ; i--) {
            System.out.println(num1[i]);
        }
    }

转换字符串(toString)

例:

public static void main(String[] args) {
    int []num1 = {67,34,56,89,12,2};
    String str = Arrays.toString(num1);
    System.out.println(str);
}

赋值(fill)

例:

public static void main(String[] args) {
        int []num1 = {67,34,56,89,12,2};
        Arrays.fill(num1, 60);
        String str = Arrays.toString(num1);
        System.out.println(str);
    }

拷贝(copyOf)

例:

    public static void main(String[] args) {
        int []arr1 = new int[] {10,50,40,30 };
        
        //将arr1复制成长度为3的新数组arr2
        int []arr2 = Arrays.copyOf(arr1,3);
        System.out.println(Arrays.toString(arr2));
        
        //将arr1复制成长度为4的新数组arr3
        int []arr3 = Arrays.copyOf(arr1, 4);
        System.out.println(Arrays.toString(arr3));
        
        //将arr1复制成长度为6的新数组arr4
        int []arr4 = Arrays.copyOf(arr1, 6);
        System.out.println(Arrays.toString(arr4));
    }

二进制查找(binarySearch)

例:

public static void main(String[] args) {
        int []arr = new int[] {10,50,40,30 };
        Arrays.sort(arr);//排序后 10 30 40 50
        int index = Arrays.binarySearch(arr, 10);
        System.out.println(index);
        index = Arrays.binarySearch(arr, 0);
        System.out.println(index);
        index = Arrays.binarySearch(arr, 45);
        System.out.println(index);
        index = Arrays.binarySearch(arr, 90);
        System.out.println(index);  
    }

方法

方法是完成特定功能、相互独立的程序段;方法可以使得代码重复使用,减少代码冗余。

定义:

​ 返回值类型 方法名称(参数列表){

​ 方法体

}

(1) 方法名称

(2) 方法参数是指调用方法的前提条件,如果方法没有前提条件,那么方法可以不写参数

(3)方法返回值是指方法调用的结果,如果方法没有返回值,那么方法返回值的位置写void,void表示这个方法不返还结果。

主调方法和被调方法,形参和实参

​ 主调方法调用被调方法时,主调方法需要向被调方法传递参数(例如韩德云取钱)。主调方法提供的数据叫实际参数,被调方法的参数是形势参数。方法在调用过程中,主调方法的实际参加传递给被调方法的形势参数。

方法的返回值

​ 被调方法可以返回值,也可以不返回值;但是

​ (1) 返回值的类型必须与方法声明中的返回值类型相同或者是其子类。

​ (2) 使用 return语句返回值。

系统方法和自定义方法

Jdk提供的方法都称为系统方法,系统方法不需要开发人员定义就可以直接使用,例如System.out.println();就是系统方法,可以直接使用。

Jdk中没有提供的方法,而你有需要,这是就需要开发人员自己定义方法,定义后才能使用(调用)。

小贴士

API,即应用程序接口,application programming interface。API就是别人提供的,你可以调用的方法。

代码冗余:代码重复

方法设计原则

方法的设计遵循功能单一原则,也就是说一个方法只实现一个功能,若有多个功能就设计成多个方法。

课后作业

代码如下:

public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int num1,num2;
        System.out.println("请输入两个数来分别计算两数之和与两数之积");
        System.out.println("请输入第一个数:");
        num1 = input.nextInt();
        System.out.println("请输入第二个数:");
        num2 = input.nextInt();
        int result1 = add(num1,num2);
        System.out.println("两数之和为:"+result1);
        int result2 = mul(num1,num2);
        System.out.println("两数之积为:"+result2);
         max(num1,num2);
    }
    public static int add(int num1,int num2){
        return num1 + num2;
    }
    
    public static int mul(int num1,int num2) {
        return num1 * num2;
    }
    public static  void max(int num1,int num2) {
        int []score = new int[]{num1,num2};
        int m = score[0];
        for (int i = 0; i < score.length; i++) {
            if (score[i]>m) {
                m = score[i];
            }
        }
        System.out.println("两数之间较大的数为:"+m);
        //if(num1>num2){
            //return num1;
          //}else{
            //return num2;
            //}
    }
}

运行结果如下:

标签

评论

© 2021 成都云创动力科技有限公司 蜀ICP备20006351号-1