如何使用遍历数组和方法的思想(形参和实参概念的理解),求一个生成一个数值随机的数组,求出最大值和最小值

如何使用遍历数组和方法的思想(形参和实参概念的理解),求一个生成一个数值随机的数组,求出最大值和最小值

一、实现思路
1.创建一个数值随机的int型数组
2.第一种方式:使用数组工具Arrays.sort()方法对数组进行排序
3.使用数组遍历方式+假设的思想(假设数组的第一个元素为最大值或者最小值,并设置中间变量来储存最大值和最小值)
二、数组获取java代码在这里插入图片描述
三、数组中最大值获取方法
在这里插入图片描述

四、数组中最小值获取方式
在这里插入图片描述
五、完整代码如下
package cn.tedu.basic;

import java.util.Arrays;
import java.util.Random;

public class Test4 {

public static void main(String[] args) {
	// TODO Auto-generated method stub
	/**
	 * 	练习:统计数组中偶数的个数 ---统计数组中奇数的和     获取数组里的最大值最小值  (使用数组工具进行排序,然后在输出值)
	 * ---注意:使用方法时,将实参传入方法中运行时,若方法对实参(引用数据类型)进行了重新赋值运算,
	 * ---那么实参的数据(地址)不改变,但数值会发生改变
	 * ---引用型变量中存放的是地址值,基本类型变量中存放的是数值;
	 * ---(总:经过方法处理后,实参的地址值不会发生改变,什么叫做同一个变量:地址值一样的变量才是同一个变量)
	 * ---第一种情况:实参(可以是成员变量或是局部变量)为引用型变量实参,经过方法执行后,只改变实参的数据
	 * ---但是改变不了实参变量的地址(所以修改了数值,但是地址值没变,那么引用变量中的默认值就发生了变化)
	 * ---第二种情况:实参(可以是成员变量或是局部变量)虽然他们的变量名一致(使用就近原则),其实他们不是同一个变量
	 */
	int[] a = createArray(); // 使用方法静态初始化一个随机数组
	System.out.println(Arrays.toString(a));// 使用数组工具类打印出随机数组
	int evenNum = arrayEvenNumber(a); // 使用方法统计随机数组里偶数个数并放入变量evenNum中
	System.out.println("随机产生数组中偶数的个数为:" + evenNum); 
	System.out.println("随机产生数组中奇数的和为:" +oddSum(a) );// 使用方法统计随机数组里奇数和
	System.out.println("随机产生数组中最小值为:" +min(a));// 使用方法确认随机数组里的最小值
	System.out.println("随机产生数组中最小值为:" +max(a));// 使用方法确认随机数组里的最小值

// int[] Num1 = maxMin(a); //使用数组工具排序数组并输出最大值
// System.out.println(“随机产生数组中最小值为:” +Num1[0]);
// System.out.println(“随机产生数组中最大值为:” +Num1[Num1.length-1]);
}
//*******************************************************
public static int[] createArray() {//创建一个随机数组
// 1.创建一个数组(动态随机获取一个整形数组)-----使用方法思想
int[] randomArray = new int[10];
for (int i = 0; i <= randomArray.length - 1; i++) {
randomArray[i] = new Random().nextInt(100);
}
return randomArray;
}
//*******************************************************
public static int arrayEvenNumber(int[] b) {//求一个随机数组中的偶数个数
// 遍历数组判断数组里面的偶数,并统计偶数个数方法的返回方法值
int num = 0; // 定义偶数个数的初始值为0
for (int j = 0; j <= b.length - 1; j++) // 循环遍历获取并传送过来的数组
{
if (b[j] % 2 == 0) // 判断是否为偶数
num++;
}
return num;
}
//*******************************************************
public static int oddSum(int[] c) {//求一个随机数组中的奇数和
// 遍历数组判断数组里面的奇数,并统计他们的和,返回计算数组奇数和方法值
int osum = 0;
for (int k = 0; k <= c.length - 1; k++) {
if (c[k] % 2 == 1)
osum += c[k];
}
return osum;
}
//*******************************************************
public static int max(int[] a) {
// 遍历数组判断数组里面的最大值,并返回数组中的最大值
int max=a[0];
for (int k = 0; k <= a.length - 2; k++) {
if (a[k] >= max)
max = a[k];
}
return max;
//可以使用假设的方法进行优化,a【0】是最大值
}
//*******************************************************
public static int min(int[] a) {
// 遍历数组判断数组里面的最小值,并返回数组中的最小值
int min=a[0];
for (int k = 0; k <= a.length - 2; k++) {
if (a[k] <= min)
min = a[k];
}
return min;
//可以使用假设的方法进行优化,假设a【0】是最小值
}
//*******************************************************
public static int[] maxMin(int[] d){//对一个数据进行重小到大进行排序
//使用数组工具对数组进行排序
Arrays.sort(d);
return d;
}
}
六、调试结果如下
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值