javase:数组和方法的学习

java方法

1.方法的定义调用

方法是解决问题的语句集合,放在一起执行一个功能。

package com.javase.method;

/**
 * @author panglili
 * @create 2022-07-13-16:22
 */
public class NewMethod {
    public static void main(String[] args) {
        //给方法传参并且调用
        int add = add(1, 3);
        System.out.println(add);
    }

    //加法方法的定义
    public static int add(int a,int b){
        return a+b;
    }
}

2.方法重载

在一个类中可以定义多个方法名相同,但是参数个数或者参数类型不同的叫做方法重载。

package com.javase.method;

/**
 * @author panglili
 * @create 2022-07-13-16:22
 */
public class NewMethod {
    public static void main(String[] args) {
        //给方法传参并且调用
        int add = add(1, 3);
        float add1 = add(1.0F, 2.3F);
        int add2 = add(1, 2, 3);
        System.out.println(add);
        System.out.println(add1);
        System.out.println(add2);
    }

    //加法方法的定义
    public static int add(int a,int b){
        return a+b;
    }
    //方法重载参数类型不同
    public static float add(float a,float b){
        return a+b;
    }
    //方法重载参数个数
    public static int add(int a,int b,int c){
        return a+b+c;
    }
}

3.可变参数

java1.5后支持给一个方法传递同类型的可变参数。

在方法声明的时候在指定类型的后面加上一个省略号。

一个方法只能有一个可变参数,并且要声明在最后。

package com.javase.method;

import java.util.Scanner;

/**
 * @author panglili
 * @create 2022-07-13-16:45
 */
public class ChangeArgs {
    public static void main(String[] args) {
        ChangeArgs changeArgs = new ChangeArgs();
        changeArgs.test(1,2,3,4);
        changeArgs.test(1,2,3);
    }

    public void test(int...i){
        //底层其实是一个数组,因此要遍历
        for(int j=0;j<i.length;j++){
            System.out.println(i[j]);
        }

    }
}

4.递归

在这个方法中调用方法本身。

递归头:方法结束循环的执行语句,否则会陷入死循环。

递归体:什么时候调用自身的方法。

package com.javase.method;

/**
 * @author panglili
 * @create 2022-07-13-16:59
 */
public class RecurtionMethod {
    public static void main(String[] args) {
        //5的阶乘
        System.out.println(mul(5));
    }

    public static int mul(int a){
        if(a==1){
            return 1;
        }else
            return a*mul(a-1);
    }
}

练习:控制写一个简易计算器

package com.javase.method;

import java.util.Scanner;

/**
 * @author panglili
 * @create 2022-07-13-17:18
 */
public class Calculator {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        while(1==1){
            System.out.println("---简易计算器功能---");
            System.out.println("****1.加法*********");
            System.out.println("****2.减法*********");
            System.out.println("****3.乘法*********");
            System.out.println("****4.除法*********");
            System.out.println("****5.退出计算*********");
            System.out.println("请选择:");
            int i = scan.nextInt();
            switch (i){
                case 1:
                    System.out.println("输入两个数,以空格分割:");
                    int add = add(scan.nextInt(), scan.nextInt());
                    System.out.println(add);
                    break;

                case 2:
                    System.out.println("输入两个数,以空格分割:");
                    int sub = sub(scan.nextInt(), scan.nextInt());
                    System.out.println(sub);
                    break;
                case 3:
                    System.out.println("输入两个数,以空格分割:");
                    int mul = mul(scan.nextInt(), scan.nextInt());
                    System.out.println(mul);
                    break;
                case 4:
                    System.out.println("输入两个数,以空格分割:");
                    float div = div(scan.nextInt(), scan.nextInt());
                    System.out.println(div);
                    break;
                case 5:
                    exit();
            }
        }

    }
    public static int add(int a,int b){
        return a+b;
    }
    public static int sub(int a,int b){
        return a-b;
    }
    public static int mul(int a,int b){
        return a*b;
    }
    public static float div(int a,int b){
        if(b==0){
            System.out.println("输入有误,不能为0");
            return 0;
        }else{
            return a/b;
        }
    }
    public static void exit(){
        System.exit(0);
    }
}

java数组

1.数组定义创建

相同类型的数据有序集合。

数组的大小是固定的,一旦创建就不可以改变了。

数组的类型必须相同。

package com.javase.ArraysUse;

/**
 * @author panglili
 * @create 2022-07-13-17:49
 */
public class ArraysCreate {
    public static void main(String[] args) {
        //定义方法
        int []nums;
        int nums2[];
        //创建,要定义大小
        nums = new int[10];
        //赋值
        nums[0]=1;
        nums[1]=2;
        nums[2]=3;
        nums[3]=4;
        //取值
        System.out.println(nums[3]);

    }
}

2.数组使用

  • for-each循环

  • 数组做方法入参

  • 数组做返回值

    package com.javase.ArraysUse;
    
    /**
     * @author panglili
     * @create 2022-07-13-18:05
     */
    public class ArraysUse {
        public static void main(String[] args) {
            //for-each循环
            int [] array={1,2,3,4,5,5};
            for(int i: array){
                System.out.println(i);
            }
            //数组做方法入参
            arrays(array);
    
            //数组做返回值
            int[] reverseArrays = reverseArrays(array);
            for(int i:reverseArrays){
                System.out.println(i);
            }
        }
        public static void arrays(int [] array){
            for(int i=0;i<array.length;i++){
                System.out.println(array[i]);
            }
        }
    
        public static int[] reverseArrays(int [] array){
            int [] reverses = new int[array.length];
            for(int i=0,j=array.length-1;i<array.length;i++,j--){
                reverses[j]=array[i];
            }
            return reverses;
        }
    
    }
    

3.多维数组

多维数组就是数组的数组,一个数组的元素还是数组,它的元素还是数组……

package com.javase.ArraysUse;

/**
 * @author panglili
 * @create 2022-07-13-18:22
 */
public class MulArrays {
    public static void main(String[] args) {
        //二维数组的定义
        int [][] arr={{1,2},{2,3}};
        //三维数组的定义
        int [][][]arr1={{{1},{2,3}},{{2,3,4},{123}}};
        //多维……
        //遍历
        System.out.println(arr[0][1]);

        System.out.println(arr1[0][1][1]);
    }
}

将多维数组看做是它的元素是数组就可以!

4.Arrays类

一个工具类,提供了许多操作数组的方法,可以直接调用。

package com.javase.ArraysUse;

import java.util.Arrays;

/**
 * @author panglili
 * @create 2022-07-13-18:34
 */
public class ArraysArr {
    public static void main(String[] args) {
        int [] a={1,5,2,4,88,99,23};
        //打印所有元素
        System.out.println(Arrays.toString(a));
        //排序
        Arrays.sort(a);
        System.out.println(Arrays.toString(a));
        //填充
        Arrays.fill(a,0);
        System.out.println(Arrays.toString(a));
    }
}

5.冒泡排序

package com.javase.ArraysUse;

import java.util.Arrays;

/**
 * @author panglili
 * @create 2022-07-13-18:41
 */
public class BubbleSort {
    public static void main(String[] args) {
       int []nums={99,1,5,3,7,21,89,33} ;
        int[] sort = bubbleSort(nums);
        System.out.println(Arrays.toString(sort));
    }
    public static int[] bubbleSort(int[] nums){
        for(int i=0;i<nums.length-1;i++){
            for(int j=i+1;j<nums.length;j++){
                if(nums[i]>nums[j]){
                    int temp=nums[i];
                    nums[i]=nums[j];
                    nums[j]=temp;
                }
            }
        }
        return nums;
    }
}

6.稀疏数组

当数组中大部分元素为0时,把有意义的数值行列保存起来,压缩空间。

posted @ 2022-07-13 20:01  路漫漫qixiuyuanxi  阅读(25)  评论(0编辑  收藏  举报