首页 > 其他分享 >制作工具类day07

制作工具类day07

时间:2024-08-02 20:06:43浏览次数:8  
标签:arr end int day07 文档 数组 工具 制作 array

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

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

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

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

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

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


 */
/*
    如何使用帮助文档?Scanner
        1、双击打开帮助文档
        2、点击索引
        3、搜索要学习的类 Scanner
        4、看属于哪一个包下的
            如果这个类是在java.lang包下的话,将来在程序中使用的时候,是不需要导包的。
            其余包下的类,将来在程序中使用的时候,都是需要导包的。
        5、类的关系(继承xx,实现xx)
        6、看这个类是干什么的
        7、看成员:
            构造方法:
                如果一个类没有构造方法,大概率是一个工具类
                如果有构造方法,那就得到如何创建该类的对象
            成员变量:
                是常量(后面会说)还是变量
            成员方法:
                看是静态还是非静态的


 */

/**
 * 这是数加最帅的男人-陈真编写的工具类,该工具类主要是针对数组提供了一些常用的功能方法
 * @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();
    }
}

标签:arr,end,int,day07,文档,数组,工具,制作,array
From: https://www.cnblogs.com/qiwei-bigdata/p/18339509

相关文章

  • 各工具国内镜像源
    npm、yarn、pnpm最新国内镜像源设置:#淘宝镜像npmconfigsetregistryhttps://registry.npmmirror.com#官方镜像源npmconfigsetregistryhttps://registry.npmjs.org/maven配置settings.xml文件为阿里云镜像仓库:配置下setting.xml即可;<mirrors><mirror>......
  • Apache Amoro数据湖管理和治理工具部署
    一、Amoro介绍2024年3月11日,Amoro项目顺利通过投票,正式进入Apache软件基金会(ASF,ApacheSoftwareFoundation)的孵化器,成为ASF的一个孵化项目。Amoro是建立在开放数据湖表格式之上的湖仓管理系统。2020年开始,网易大数据团队在公司内基于ApacheIceberg进行湖仓一体......
  • Debian系包管理工具dpkg,apt-get,apt的区别
    解密Linux包管理:apt和apt-get的区别-系统极客(sysgeek.cn)dpkg:幕后英雄dpkg是Debian包管理系统的核心,是一个底层工具,用于直接操作.deb文件。你可以把它想象成一个搬运工,负责把软件包里的「内容」搬到电脑里。但是,它不处理依赖关系,这项工作交由apt或apt-get来完成。ap......
  • 程序员进阶架构知识体系、开发运维工具使用、Java体系知识扩展、前后端分离流程详解、
    场景作为一名开发者,势必经历过从入门到自学、从基础到进阶、从学习到强化的过程。当经历过几年企业级开发的磨炼,再回头看之前的开发过程、成长阶段发现确实是走了好多的弯路。作为一名终身学习的信奉者,秉承持续学习、持续优化的信念。不惜耗费无数个日日夜夜,耗费大量时间精力......
  • 原来还能免费做报表?后悔才知道这款免费报表工具
    在现代商业环境中,报表已成为数据分析和决策支持的关键工具。无论是销售业绩的跟踪、财务报表的编制,还是市场调研的结果汇总,报表都能有效地将复杂的数据以简洁明了的形式呈现给相关人员。例如,企业可以通过月度销售报表清晰地了解销售趋势,及时调整市场策略,从而提升业绩。然而,制作一......
  • 最新SEO自动外链蜘蛛池工具促进百度快速收录使用方法介绍
    此工具集成市面上所有自动外链网站的资源链接,经过合并、去重、筛选、验证总结出最终的外链资源,软件实时更新 本软件将您繁杂的外链推广转为自动化进行,并且加入站群的支持,您只需要将你的站群域名粘贴到软件里,点击开始按钮就可以了 软件会自动轮刷您的每一个网站 软件效......
  • java-若依/RuoYi下载,导入,安装,运行,运行工具Eclipse IDE
    介绍RuoYi基于SpringBoot、Shiro、Mybatis的权限后台管理系统RuoYi是一个后台管理系统,基于经典技术组合(SpringBoot、ApacheShiro、MyBatis、Thymeleaf)主要目的让开发者注重专注业务,降低技术难度,从而节省人力成本,缩短项目周期,提高软件安全质量。文档地址:介绍|RuoYi下......
  • 2024 年五大最佳构建内部工具的开源项目
    ......
  • 野兔在线工具箱系统安装部署说明文档(商业版)
    这个是商业版的,不是早期免费版的旧版那个系统,旧版的可以看这个教程,不过那个系统不更新了 ,https://www.662p.com/other/5310今天花点时间来整理一下,把这个安装教程分享给大家。首先下载那个野兔在线工具系统(商业版),安装运行环境,官方推荐是PHP8.0,低版本不支持了,因为系统已......
  • 云盒子内网IM,类微信的内网即时通讯工具
    私有化部署的内网IM云盒子内网IM(即时通讯)系统,专为构建安全高效的内网沟通环境而设计,采用私有化部署方式,确保企业数据的安全性与隐私保护,无论是部门间的日常文字、语音交流、还是项目文档的实时同步,还是各类紧急事务的通知,都能云盒子内网IM完成,提升信息流通速度。像微信一......