在我们日常写代码的生活中,你面临的问题可能存在着相同的方法,你是选择再写一遍这段程序的方法吗?
当然一个两个我们可能还会耐心的去写一下,但是当出现n个的时候你还会帮代码搬个家吗?
所以你们的靓仔来啦,今天教大家学会创建自己的工具包,碰见相同的方法,嘿嘿,好家伙咱们直接调用它!
今天就拿我们经常使用的数组中要用到的“遍历数组打印、取数组最大值、取数组最小值”方法来创建自己的工具类!
新建一个ArrayTool.class
话不多说代码献上:
/**
* 这是针对数组相关操作的工具类(还在不断优化中)
* @author 靓仔
* @version 1.0
*/
public class ArrayTool {
/**
* 这是午无参的构造方法
*/
private ArrayTool(){
}
/**
* 这是遍历数组的方法,遍历后的格式是[元素1,元素2...]
* @param array
*/
public static void printArray(int[] array){
for (int i=0;i<array.length;i++){
if (i==0){
System.out.print("["+array[i]+",");
}else if (i==array.length-1){
System.out.print(array[i]+"]");
}else {
System.out.print(array[i]+",");
}
}
}
/**
*
* 这是获取数组元素中最大值的方法
* @param array 这是调用该方法需要传入的参数,数据类型是int类型的数组
* @return 返回的是该数组中元素的最大值
*/
public static int getMaxNum(int[] array){
int max = array[0];
for (int i=1;i<array.length;i++){
if (array[i]>max){
max=array[i];
}
}
return max;
}
/**
*
* 这是获取数组元素中最小值的方法
* @param array 这是调用该方法需要传入的参数,数据类型是int类型的数组
* @return 返回的是该数组中元素的最小值
*/
public static int getMinNum(int[] array){
int min = array[0];
for (int i = 1; i < array.length; i++) {
if (array[i] < min) {
min = array[i];
}
}
return min;
}
}
这里我们定义了
printArray(int[] array){}
getMaxNum(int[] array){}
getMinNum(int[] array){}
三个方法
此类中没有main函数,只是方便我们以后写的程序中遇到到“遍历数组打印、取数组最大值、取数组最小值”直接调用方法的工具类。
那么接下来我们来试试创建的工具类能不能解决问题呢?
我们新建一个类定义一个数组来测试一下:
public class TestTool {
public static void main(String[] args) {
int[] arr={23, 24, 25, 55, 164, 32, 44};
}
}
需求:
1、遍历该数组打印输出
2、取该数组中的最大值
3、取该数组中的最小值
对于初学Java的你来说,按照惯例你肯定会 一 一 的去实现这些功能代码。若我们不同类遇见相同的功能你还会 一 一 去 实现吗?
你可能会:
既然咱们创建了自己的工具类,那么咱们以后遇见相同功能代码的时候直接去你创建的工具类中写出该功能代码,写一个功能终身使用。
如何使用呢?代码如下:
public class TestTool {
public static void main(String[] args) {
int[] arr={23, 24, 25, 55, 164, 32, 44};
//遍历输出数组
ArrayTool.printArray(arr);
//换行
System.out.println();
//取数组中元素最大值
System.out.println("该数组中的最大值为:" + ArrayTool.getMaxNum(arr));
//取数组中元素最小值
System.out.println("该数组中的最小值为:" + ArrayTool.getMinNum(arr));
}
}
运行结果:
[23,24,25,55,164,32,44]
该数组中的最大值为:164
该数组中的最小值为:23Process finished with exit code 0
简单的3行调用就完成了我们想要实现的功能是不是很方便呢?
ArrayTool.printArray(arr); ArrayTool.getMaxNum(arr); ArrayTool.getMinNum(arr);
当然还有一种调用方法:
printArray(arr);
getMaxNum(arr);
getMinNum(arr);
不过我们要这样调用方法的时候需要导入我们工具类的包
import static com.hjl.test.day13.ArrayTool.getMaxNum;
import static com.hjl.test.day13.ArrayTool.getMinNum;
import static com.hjl.test.day13.ArrayTool.printArray;
public class TestTool {
public static void main(String[] args) {
int[] arr={23, 24, 25, 55, 164, 32, 44};
//遍历输出数组
printArray(arr);
System.out.println();
//取数组中元素最大值
System.out.println("该数组中的最大值为:" + getMaxNum(arr));
//取数组中元素最小值
System.out.println("该数组中的最小值为:" + getMinNum(arr));
}
}
运行结果:
[23,24,25,55,164,32,44]
该数组中的最大值为:164
该数组中的最小值为:23Process finished with exit code 0
学会了使用这种方法是不是再也不用反复写功能代码呢?遇见就调用,是不是很方便。
接下来我们用一个案例,通过调用我们的ArrayTool工具类来实现编程
选择IDEA进入我们的娱乐世界!你的快乐会回来的。
案例: 数组获取最值(获取数组中的最大值最小值) 1、定义一个数组,存储一些元素(使用静态初始化) 2、首先在数组中任意找一个元素进行比较,默认一开始它就是最大值 一般来说,我们取第一个(选择排序) 3、遍历其他的元素与第一个元素进行比较,如果找到了更大的元素, 就将它取代,如果比它小,不管它继续和后面比较 4、输出最大值程序分析:
1、导Scanner包
2、定义一个数组,存放产生的随机数
3、求最大值
4、求最小值
实现代码如下:
/*
获取数组最大值和最小值操作:利用Java的Math类的random()方法,
编写方法得到0到n之间的随机数,n是参数。n代表产生随机数的范围
并找出产生50个这样的随机数中最大的、最小的数,并统计其中>=60的有多少个。
*/
import java.util.Scanner;
public class Test3 {
public static void main(String[] args) {
//创建键盘录入对象
Scanner sc = new Scanner(System.in);
System.out.println("请输入产生随机数的最大范围:");
int n = sc.nextInt();
getMaximum(n);
}
private static void getMaximum(int n) {
//定义一个数组,存放产生的随机数
int[] arr = new int[50];
for (int i =0;i<50;i++){
int number = (int)(Math.random()*n);
arr[i]=number;
}
System.out.println("随机生成的数组为:");
ArrayTool.printArray(arr);
System.out.println();
//求最大值
System.out.println("随机的50个数字中最大值为:"+ArrayTool.getMaxNum(arr));
//求最小值
System.out.println("随机的50个数字中最小值为:"+ArrayTool.getMinNum(arr));
}
}
运行结果:
请输入产生随机数的最大范围:
300
随机生成的数组为:
[107,66,189,286,206,23,233,112,13,270,214,107,219,183,259,34,226,2,103,210,271,17,155,123,129,181,121,95,42,21,118,95,72,283,28,195,248,19,230,3,284,25,256,19,77,218,78,113,290,257]
随机的50个数字中最大值为:290
随机的50个数字中最小值为:2Process finished with exit code 0
请输入产生随机数的最大范围:
99
随机生成的数组为:
[62,44,20,28,46,76,61,15,85,89,62,57,51,39,29,50,29,15,37,35,69,29,23,62,84,18,90,25,66,10,63,64,45,84,25,49,51,12,18,64,26,60,42,55,42,37,51,84,28,8]
随机的50个数字中最大值为:90
随机的50个数字中最小值为:8Process finished with exit code 0