方法 方法的重载 可变参数 ; 数组的内存分析(堆,栈),初始化,使用 Arrays类 稀疏矩阵变三元组

本文详细介绍了Java中的方法,包括方法的概念、作用、设计原则以及重载。同时,讲解了数组的定义、初始化、内存分析及操作,如长度获取、遍历方式、作为方法参数和返回值。还涉及到了二维数组的使用以及Arrays类提供的实用方法。通过实例解析,帮助理解Java编程中的核心概念。
摘要由CSDN通过智能技术生成

方法

何谓方法

System.out.println():调用系统类里面的标准输出对象out中的方法,方法叫做println()
分别为 类 对象 方法。

  • Java方法是语句的集合,他们在一起执行一个功能
  • 方法是解决一类问题的步骤的有序组合
  • 方法包含于类或者对象中
  • 方法在程序中被创建在其他地方被引用
  • 设计原则:保持方法的原子性,一个方法只完成一个功能,有利于后期的扩展。

类似于C语言种的函数

方法的重载

方法的重载的规则:

  • 方法名称必须相同
  • 参数列表必须不同(个数不同 或 类型不同 、参数排列顺序不同等)

如同样一个比大小的方法名,可以写多个,引用时根据参数的不同来选择对应的函数。
如:
public static int max(double num1,double num2)
{…}
public static int max(int num1,int num2)
{…}
public static int max(int num1,int num2,int num3)
{…}

可变参数

方法声明中,在指定参数类型后加省略号…
一个方法中只能指定一个可变参数,他必须是方法的最后一个参数。任何普通的参数必须在它之前声明

public static void Max(double… i ) {…}
可将这个i当做数组名来使用

数组

定义方法

  1. int[ ] nums;
  2. int nums[ ]; //这种和C语言一样的定义方法最好别用
  • int[ ] nums; //声明一个数组
    nums = new int[10]; //分配空间,创建一个数组
  • int[ ] nums = new int[10];

获取数组的长度:arrays.length 。如nums.length的值就为10。

小结:

  • 数组是相同的数据类型的有序集合
  • 数组也是对象。数组元素相当于对象的成员变量。
  • 数组的长度是不可变的。越界就会报ArrayIndexOutofBounds

内存分析

堆:

  • 存放new的对象和数组
  • 可以被所有的线程共享,不会存放别的对象引用
    栈:
  • 存放基本数据类型(包含这个基本数据类型的具体数值)
  • 引用对象的变量(会存放这个引用在堆里面的具体地址)
    方法区:
  • 可以被所有的线程共享
  • 包含了所有的class和static变量
    在这里插入图片描述

初始化

静态初始化:创建 + 赋值

int [ ] a={1,2,3,4,5,6,7,8};

动态初始化: 包含默认初始化

int [ ] b = new int[10];
b[0]=1;

数组的使用

  • 普通的for循环
  • For-Each循环(省去了数组的下标,适合打印输出)
    int[ ] a={1,2,3,4};
    然后输入a.for回车就会生成
    for(int i;a) {
    System.out.println(i); //这句话可以吧数组中的元素都输出出来
    }
  • 数组作方法入参
    下面这个作返回值的函数就作了入参
  • 数组作返回值
    如:public static int[ ] reverse(int[ ] a)
    { int[ ] b=new int[a.length];
    return b;
    }

二维数组

arrays.length指的是有多少行,也就是数组里有多少个一维数组
arrays[i].length指的是有多少列,也就是数组里每个一维数组有多少个元素

Arrays这个类可以对数组进行很多操作

Arrays这个类中的方法都是用static修饰的静态方法,在使用时可以直接使用类名进行调用,而不用使用对象来调用(注意是“不用”,不是“不能”)
如:
输出数组:Arrays.toString(a)
可以用System.out.println(Array.toString(a));直接将数组一一输出
排序:Arrays.sort(a);
比较数组是否相等可以用equals方法
给数组赋值可以通过fill方法

制作稀疏矩阵和还原输出稀疏矩阵

1.先输出稀疏矩阵,可以用两层for-each方法比较简单,第一个的数组的元素是内层的数组名:
在这里插入图片描述
输出:在这里插入图片描述
2.根据数组中的非零数字计算有效数字的个数,然后根据个数创造一个三元数组,并将个数加一当做三元组的行数,列数肯定为三个。
在这里插入图片描述
3.将数据存入三元组,随便定义一个变量存放数组的行数在这里插入图片描述
在这里插入图片描述
4.还原数组
在这里插入图片描述

本篇截图来源于狂神说JAVA。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值