JAVA基础(三)方法与数组

本文介绍了Java编程中的核心概念,包括方法的定义及其重载,展示了可变参数的使用示例,通过计算阶乘展示了递归的应用,并详细讲解了数组的定义、声明、创建、初始化以及多维数组的概念。此外,还探讨了稀疏数组的创建和转换,以节省存储空间。
摘要由CSDN通过智能技术生成

1.什么是方法?

在这里插入图片描述
在这里插入图片描述

2.方法的重载

在这里插入图片描述

补:可变参数(其实就是数组)
在这里插入图片描述

// 可变参数示例 (其实就相当于数组)
public class variableParameters {
    public static void main(String[] args) {
        printMax(34,2,5,89,78.9,45,36,1);
        System.out.println("================================");
        printMax(new double[]{1,45,56.1,3,4,75});
    }
    public static void printMax(double... numbers){
        if(numbers.length==0){
            System.out.println("No argument passed");
            return;
        }

        double result=numbers[0];

        //Sort
        for (int i = 1; i < numbers.length; i++) {
            if (numbers[i]>result){
                result=numbers[i];
            }
        }
        System.out.println("the max value is "+result);
    }
}

3.递归(小批量数据用递归,大数据不用)

在这里插入图片描述

(1)n!

import java.util.Scanner;

public class recursive_Factorial {
    public static void main(String[] args) {
        System.out.println("请输入n:");
        Scanner sc = new Scanner(System.in);
        int x=sc.nextInt();
        int result=f(x);
        System.out.println("The result of n! is "+result);
    }
    public static int f(int n){
        if(n==1){
            return 1;
        }else {
            return n*f(n-1);
        }
    }
}

4.数组

(1)数组的定义

在这里插入图片描述

(2)数组的声明和创建

在这里插入图片描述

(3)数组的初始化

在这里插入图片描述

(4)数组的基本特点

在这里插入图片描述
在这里插入图片描述

(5)多维数组(在数组里边再嵌套数组)

在这里插入图片描述
在这里插入图片描述

(6)Arrays类

在这里插入图片描述

(7)稀疏数组

在这里插入图片描述

// 将原始数组打印成稀疏数组
public class sparseArrays {
    public static void main(String[] args) {
        // 1.创建一个二维数组 11*11  0:没有棋子, 1:黑棋, 2:白棋
        int[][] array1=new int[11][11];
        array1[1][2]=1;
        array1[2][3]=2;
        //输出原始的数组
        System.out.println("输出原始的数组: ");
        for(int[] ints :array1){
            for (int anInt : ints){
                System.out.print(anInt+"\t");
            }
            System.out.println();
        }
        System.out.println("======================================");
         //转换为稀疏数组来保存
        //1.获取有效值的个数
        int sum=0;
        for (int i = 0; i < 11; i++) {
            for (int j = 0; j < 11; j++) {
                if (array1[i][j]!=0){
                    sum++;
                }
            }
        }
        System.out.println("有效值的个数:"+sum);

        //2.创建一个稀疏数组的数组
        int[][] array2=new int[sum+1][3];
        array2[0][0]=11;
        array2[0][1]=11;
        array2[0][2]=sum;

        //遍历二维数组,将非零的值,存放在稀疏数组中
        int count=0;
        for (int i = 0; i <array1.length ; i++) {
            for (int j = 0; j < array1[i].length; j++) {
                if (array1[i][j]!=0){
                    count++;
                    array2[count][0]=i;
                    array2[count][1]=j;
                    array2[count][2]=array1[i][j];
                }
            }
        }

        //输出稀疏数组
        System.out.println("稀疏数组:");
        for (int i = 0; i < array2.length; i++) {
            System.out.println(array2[i][0]+"\t"+array2[i][1]+"\t"
                               +array2[i][2]+"\t");
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值