/*
目的:复习数组的语法格式和数组的使用方法,体会数组调用与普通数字类型的不同之处,掌握数组引用型数组与实型数据类型的不同
需求:设计一个程序,打印出一个长度为20的一列随机数,并找出该列数中的最小值与最大值。
思路:首先使用随机数生成函数(int)(Math.Random()*n),产生随机数赋值给数组,然后利用遍历的方法循环对数组中的数字进行比较,得出最值;
步骤:定义一个长度为20的数组,把利用循环机制产生20个随机数赋值给该数组;
将得到的数组利用循环遍历逐个比较大小,分别定义两个变量max和min用来记录最大值和最小值;
使用系统调用获取最值,然后将最大最小值打印出来。
*/
/*
数组知识详解:
数组概念:同一种类型数据的集合,数据是一个容器;
数组的好处:可以自动的给数组中的元素编号(从0开始编号),方便操作这些元素;
格式1:元素类型[] 数组名 = new 元素类型[x];x为元素个数或者数组长度;eg:int[] arr = new int[x];
格式2:元素类型[] 数组名 = new 元素类型[] {x1, x2 ,x3 ...}
int[] arr = new int[] {1,3,5,7} 静态初始化
int[] arr = {1,3,5,7}
内存结构:
Java虚拟机在运行时,需要在内存中分配空间,为了提高运行效率,对空间进行了不同区域的划分;
因为每一片区域都有特定的处理数据方式和内存管理的方式;
栈内存:用于储存局部变量,当数据使用完毕,其占用空间会自动释放,(包括:定义在方法中的变量,局部变量);
堆内存:数组和对象,通过new建立的实例都在堆内存中,每一个实体都有内存的地址值;
实体中的变量都有默认的初始化值(各种0);
实体不被使用后,会在不确定的时间内被垃圾回收机制回收,可以通过 arr = null进行数组实体的清除释放;(包括:方法区:本地方法区;寄存器)
常见的异常类型:
第一种:ArrayIndexoutofBoundsException -->角标越界异常:操作数组时,访问到了数组中不存在的角标;
eg: int[] arr = new int[3];
System.out.println(arr[3]); 编译时没有错误,但运行会存在错误;没有角标好为3的元素;
第二种:NullpointException 空指针异常:引用没有任何指向,值为null的情况,该引用还在用于操作实体;
eg: int[] arr = new int[3];
arr = null;释放情况 arr数组
System.out.println(arr[1]);不允许这样操作
第三种:[I@de6ced --> 打印了一个数组实体的引用内存地址 (哈希算法)
获取数组的长度使用 arr.length
*/
class ArrayOperate
{
public static void main(String[] args)
{
int[] arr = new int[20]; //定义了一个长度为20的数组
for(int i = 0;i<20;i++) //利用循环遍历获取20个随机值
{
arr[i] = (int)(Math.random()*100); //使用随机种子函数(int)(Math.random()*n)(获取0-n的数)
}
for(int i = 0;i<20;i++) //利用遍历打印这些随机数
{
System.out.print(arr[i]+" ");
}
System.out.println();
int max,min; //定义变量用来接收最大值和最小值
max = Max(arr); //函数调用
min = Min(arr); //函数调用
System.out.println("最大值="+max+", 最小值="+min);
}
public static int Max(int[] arr)
{
int max = 0; //假设最大值的角标为0
for(int i = 1 ;i<20;i++)
{
if(arr[i] > arr[max]) //利用角标来区别不同的数字,进行判断
max = i;
}
return arr[max]; //返回最大值
}
public static int Min(int[] arr)//同上
{
int min = 0;
for(int i = 1;i<20;i++)
{
if(arr[i]<arr[min])
min = i;
}
return arr[min]; //返回最小值
}
}
/*
运行结果:
4 69 17 11 90 62 10 26 78 90 27 58 28 17 62 96 99 87 35 13
最大值=99, 最小值=4
*/
Java学习_ArrayOperate
最新推荐文章于 2023-10-03 16:45:34 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)