java是一门面向对象的语言,我们也提到过,面向对象的一个优点就在于能够提高代码的复用性,前面我们详细讲过数组的查找,排序,等等,为了提高代码的复用性,我们何不自己写一个数组的工具集,来综合下前面所学的面向对象的知识呢,这一节,我们就来写一个实例来练练手,也来加深下我们对所学知识的理解。在写程序之前,我们来想一下需求

需求:

  1、根据所输入的数组,进行查找,排序。

  2、能够单独封装成一个类来供其他用户使用

思路:

  1、首先要完成对方法的封装,我们把所有的方法都放到类当中,这个时候我们需要定义一个类Arrtool

  2、此时类需要一个构造方法进行初始化。

  3、对相应功能分离封装到函数当中,并且明确函数的接受值还有返回值。

代码示例:

/**
*This is a ArrTool For array search , array sort , array print tool set.
*@author Mrsun
*@version v0.0.1
*/ public class ArrTool
{
/**
*TO avoid new class
*/
private ArrTool(){} /**
*Find array index for special value
*@param arr
*@param val
*@return int index
*/ public static int arrSearch(int [] arr,int val)
{ for(int i = 0 ; i <= arr.length-1 ; i++)
{ if(arr[i] == val)
return i; }
return -1; }
/**
*Use select Alogrithsm to sort the array you input
*@param arr
*/
public static void selectSort(int[] arr)
{ for(int i = 0; i<arr.length-1; i++)
{ for(int n = i+1 ; n<=arr.length-1 ; n++)
{ if(arr[i] > arr[n])
swap(arr,i,n);//swap the value } } } private static void swap(int[] arr,int i, int n)
{ int temp;
temp = arr[i];
arr[i] = arr[n];
arr[n] = temp;
} /**
*Print the array you input
*@param arr
*
*/ public static void printArr(int[] arr)
{
System.out.print("[");
for(int i = 0;i<=arr.length-1;i++)
{
if(i<arr.length-1)
System.out.print(arr[i]+",");
else
System.out.print(arr[i]); } System.out.println("]"); } }

 这里需要注意的有一下几点:

第一为什么我们要让构造函数私有?

答:这是一个单独功能的工具箱,他的功能就是处理数组的相关操作,要是我们把这个类给了其他人供其使用的话,别人又不知道的话很有可能去实例化这个类,但是为了使用时方便,我们定义这个类中的各个方法为静态,这样的一个好处就是,我们不用初始化这个对象,就可以实现对他的访问,对其方法进行使用。这个也是我们在方法前加static关键字修饰的原因。其次,我们在不用对外访问的方法对其进行私有化,这样可以更利于我们对他的封装,不对外提供的都要对齐进行私有化。

第二个,这个工具类如何使用?

答:我们创建了这个工具集,当然知道如何对其进行使用。但是如果我们把这个类,拿给其他人使用的话,我们如何给其他人说明呢?身边的人还好说,但是如果在异地,或者不同的国度,我们如何处理呢,我们这里就需要一个生成帮助文档的工具,java也提供给我们了。

javadoc的使用:

在控制台,输入javadoc会显示一些帮助信息。

javadoc使用的注意事项:要写帮助信息的类是公开类,第二个就是常用的@说明符。

@version 版本

@author 做着

@param 参数(多个参数时要分行写,每行一个参数说明)

@return 返回 

java实战之数组工具集的更多相关文章

  1. Java学习:数组工具类Arrays

    数组工具类Arrays java.util.Arrays是一个与数组相关的工具类,里面提供了大量的静态方法,用来实现数组常见的操作. public static String toString(数组) ...

  2. Java中Arrays数组工具类的使用全解

    本文几乎涵盖了所有的Arrays工具类(基于Java 11)的方法以及使用用例,一站式带你了解Arrays类的用法,希望对大家有帮助. 码字不易,三连支持一下吧 Arrays数组工具类 方法一览表 快 ...

  3. Java程序员常用工具集

    我发现很多人没办法高效地解决问题的关键原因是不熟悉工具,不熟悉工具也还罢了,甚至还不知道怎么去找工具,这个问题就大条了.我想列下我能想到的一个Java程序员会用到的常用工具. 一.编码工具 1.IDE ...

  4. java - day005 - 数组工具类, 数组复制,二维数组,变量,方法, 面向对象

    1. java.util.Arrays  数组工具类    Arrays.toString (数组) 数组值链接字符串 Arrays.sort(数组) 基本类型: 优化的快速排序 引用类型: 优化的合 ...

  5. Java学习笔记七——数组工具类Arrays

    数组工具类Arrays Java提供的Arrays类里包含的一些static修饰的方法可以直接操作数组.若将里面的方法用熟的话,那开发效率会大大提高.下面介绍其中的方法. List<T> ...

  6. 数组工具类 - ArrayUtil.java

    数组工具类,提供数组.对象之间转换的方法. 源码如下:(点击下载 - ArrayUtil.java .commons-lang-2.6.jar) import java.lang.reflect.Ar ...

  7. java数组 数组工具类Arrays

    一.数组 1.java有严格的数据类型限制,一个数组只能声明一个数据类型,存放同一种数据类型. 2.虽然只能存放一种数据类型,假设A , 如果数据类型B 继承A,依然能存放进入数组. 3.数组的初始化 ...

  8. JAVA ArrayUtils 数组工具类

    package com.sicdt.library.core.utils; import java.util.ArrayList; import java.util.Arrays; import ja ...

  9. java常用流处理工具StreamTool 常见的InputStream流转字符串, 转字节数组等等

    ava 常用流处理工具 StreamTool ,常见的InputStream 流转字符串, 转字节数组等等 **应用场景: ** 1. 文件上传 2. js / css / img 等文件读取输出. ...

随机推荐

  1. MVVM之View和ViewModel的关联

    概要: 将所有的VM在加载到Application的Static Resource中,然后在View中用标签指定. 实现: 1)采用特性指定要添加到StaticResource中的对象 public  ...

  2. iptables学习笔记

    为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处.LaplaceDemon/SJQ. http://www.cnblogs.com/shijiaqi1066/p/3812510.html ...

  3. LTP 分词算法实践

    参考链接: https://github.com/HIT-SCIR/ltp/blob/master/doc/install.rst http://www.xfyun.cn/index.php/serv ...

  4. PetaPoco 增删改查

    1 查询单行 DBInstance.DB.SingleOrDefault<CompanyInfo11>(id); /// <summary> /// 根据id获取公司信息 // ...

  5. Android中全局搜索(QuickSearchBox)详解

    http://blog.csdn.net/mayingcai1987/article/details/6268732 1. 标题: 应用程序如何全面支持搜索 2. 引言: 如果想让某个应用程序支持全局 ...

  6. ios8及以前的特性

    目前最新系统为ios8.以下为历代系统的回顾: iOS 1 关键词:iPhone的诞生 也许放在现在来看,当时的情景很难想象.当第一代iPhone正式发布时,在某些功能和方面其实是要远远落后于当时的竞 ...

  7. 【转】 UITableViewCell的标记、移动、删除、插入

    原文: http://blog.csdn.net/duxinfeng2010/article/details/7725897 这篇文章是建立在 代码实现 UITableView与UITableView ...

  8. 【转】WF事件驱动

    转自:http://www.cnblogs.com/Mayvar/category/315963.html 这系统的教程有代码可以下载 WF事件驱动(5) 摘要: 之前,我通过4篇文章介绍了在WF4中 ...

  9. cocos2dx 实现华丽丽的滚动层.

    前言 好久没写博客了. 前几周策划要求实现一个比较多功能的滚动层控件. 这个艰巨的任务就这样自然而然的落在了我这小身板上. 当然了, 只要我出手, 难度再高的需求也变得不堪一击. 哈哈哈哈 示例图 该 ...

  10. arm Linux 系统调用过程

    系统调用是操作系统提供给用户(应用程序)的一组接口,每个系统调用都有一个对应的系统调用函数来完成相应的工作.用户通过这个接口向操作系统申请服务,如访问硬件,管理进程等等.但是因为用户程序运行在用户空间 ...