制作工具类day07

/*
    注释:
        1、单行注释
        2、多行注释
        3、文档注释

   工具类:编写一个通用的类,类中有一些相关的方法功能,可以让我们在不同的程序中都能够使用

   如何编写一个工具类?(举例:写一个数组相关操作的工具类)
        1、构造方法私有化
        2、方法必须是静态的,使用static进行修饰

   将来我们工具类中的方法可能会有很多,我们应该对每一个方法以及类进行解释,使用文档注释对工具类进行注释

   我们在工具类中写好了文档注释之后,可以自动生成对应帮助文档。
    javadoc -d D:\bigdata31\day07\doc -author -version ArrayTool.java

   我们学会了使用文档注释生成帮助文档的话,那我们就在想,jdk中提供了那么多了自带的类给我们去使用,是不是应该也要给我们一个帮助文档呢?
   不同的jdk版本,帮助文档是不一样的,我们现在学习是jdk1.8的帮助文档。


 */


/**
 * 这是数加最帅的男人-陈真编写的工具类,该工具类主要是针对数组提供了一些常用的功能方法
 * @author XiaoHu
 * @version V1.0.0
 */
public class ArrayTool {
    private ArrayTool(){}

    /**
     * 该方法是针对有序的int类型数组元素中进行二分查找。
     * @param arr 要查找的int类型数组
     * @return 返回查找后的元素索引,若存在,返回对应元素索引,否则,返回 -1
     */
    public static int erFen(int[] arr){
        //定义一个front索引
        int front = 0;
        //定义结束索引end
        int end = arr.length - 1;
        int number = 12;

        boolean flag = true;

        int index = -1;

        while (front <= end) {
            //算中间元素的索引
            int mid = (front + end) / 2;
            //将查找的元素与中间的元素进行比较
            if (number > arr[mid]) {
                front = mid + 1;
            } else if (number < arr[mid]) {
                end = mid - 1;
            } else {
                System.out.println("找到该元素!元素的索引为:" + mid);
                index = mid;
                flag = false;
                break;
            }
        }

        if(flag){
            System.out.println("该序列中不存在该元素!");
        }

        return index;
    }

    /**
     * 该方法是针对元素是int类型的一维数组进行冒泡排序,最终排序的顺序是从小到大。
     * @param arr 等待被冒泡排序的int类型数组
     * @return 返回的是排序后的数组地址值
     */
    public static int[] bubbleSort(int[] arr) {
        for (int i = 0; i < arr.length - 1; i++) {
            for (int j = 0; j < arr.length - 1 - i; j++) {
                if (arr[j] > arr[j + 1]) {
                    //比较交换
                    int tmp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = tmp;
                }
            }
        }
        return arr;
    }

    /**
     * 该方法是针对一个元素是int类型的一维数组进行逆序。
     * @param arr 等待被逆序的一维数组
     * @return 返回逆序后的一维数组的地址值
     */
    public static int[] niXu(int[] arr) {
        for (int start = 0, end = arr.length - 1; start < end; start++, end--) {
            int tmp = arr[start];
            arr[start] = arr[end];
            arr[end] = tmp;
        }
        return arr;
    }

    /**
     * 将元素为int类型的一维数组以指定的格式输出。
     * 输入:数组中的元素(1,32,6,12,4,1)
     * 输出:[1,32,6,12,4,1]
     * @param array 等待被格式打印输出的一维数组。
     */
    public static void printIntArray(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] + ", ");
            }
        }
        System.out.println();
    }
}
posted @ 2024-08-02 19:59  ていせい  阅读(2)  评论(0编辑  收藏  举报