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. 【Linux学习笔记】用nc实现两台主机间的文件传输(不需要输密码)

    通常,可以用scp完成两台主机间的文件传输任务,但在主机间未建立信任关系的情况下,scp每次都需要输入密码,用起来感觉不是很方便,之前这篇笔记介绍过不用输入密码执行脚本或传输文件的方法,但对于一些临时 ...

  2. 使用org.apache.jasper.JspC编译jsp文件--转载

    JspC可以通过jspc.setArgs(args);设置所需参数,和使用指令进行编译相同, 使用指令编译范例: java -cp jasper.jar;servlet-api.jar;Fcatali ...

  3. JSP-标准动作标记

    JSP标准动作标记 在客户请求JSP页面时,JSP动作利用XML语法格式的标记来控制Servlet引擎的行为.利用JSP动作可以动态地插入文件.重用JavaBean组件.把用户重定向到另外的页面.为J ...

  4. iOS-UIScrollView的delaysContentTouches与canCencelContentTouches属性

    UIScrollView工作原理 在滚动过程当中,其实是在修改原点坐标 UIScrollView有一个BOOL类型的tracking属性,用来返回用户是否已经触及内容并打算开始滚动,我们从这个属性开始 ...

  5. ios从相册:摄像头中获取视频

    ios从相册/摄像头中获取视频 如何从相册中获取视频 使用的是一个和获取照片相同的类UIImagePickerController //相册中获取视频 - (IBAction)clickViedoOF ...

  6. iOS 使用Charts框架 折线,柱状,K线,饼状,雷达全攻略

    我是前言: 大约几个月前我在某平台写了一篇文章, 文中简单地介绍了Charts两种图表的样式的使用, 不过有种意犹未尽的感觉, 利用周末的空闲时间再次看了看, 有了新的收获, 今天发出来,分享给大家, ...

  7. FreeCodeCamp 的 Basic Algorithm Scripting 题解(1)

    这是本人的原创文章,转载请注明原文链接http://www.cnblogs.com/wusuowiaaa1blog/p/5932121.html. 1.Reverse a String 翻转字符串 先 ...

  8. Activity间的跳转,startActivity与startActivityForResult

    JreduCh04 2016-07-30跳转 (由一个画面跳转到另一个画面)两种方法:Intent中 startActivity.startActivityForResult.后者可设置request ...

  9. Gprinter Android SDK V2.0 使用说明

    佳博特约经销商,此店购买的打印机问题优先解决哟 https://shop107172033.taobao.com/index.htm?spm=2013.1.w5002-9520741823.2.V1p ...

  10. 使用charles proxy for Mac来抓取手机App的网络包

    之前做Web项目的时候,经常会使用Fiddler(Windows下).Charles Proxy(Mac下)来抓包,调试一些东西:现在搞Android App开发,有时候也需要分析手机App的网络请求 ...