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. iOS-UIScrollView的delaysContentTouches与canCencelContentTouches属性

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

  2. [转] Understanding Twitter Bootstrap 3

    Bootstrap is a popular, open source framework. Complete with pre-built components it allows web desi ...

  3. Java的演变过程

    1. 1996.01.23 JDK1.0 代号Oak:212个类.8个包: 2. 1997.02.19 JDK1.1 504个类.23个包: Java Bean.远程方法调用(RMI).JAR文件格式 ...

  4. viewpager+fragment学习笔记

    有暇,总结一下viewpager+fragment的使用. 先来看看效果图: 有三个标题,三个fragment,滑动时标题的颜色会随着变化. MainActivity.java public clas ...

  5. Bginfo软件在域的部署和应用

    在企业的IT管理中,很多用户都不知道怎么去查看自己计算机的IP地址.登陆帐户.而对于网络管理人员来说,他们可能需要知道用户在域中登录的一些信息,如那些用户登录过,在什么时间登录,IP和MAC地址是多少 ...

  6. ASP.NET-FineUI开发实践-16(一)

    还是基础的东西,grid全选没有事件,给加个事件,除了需要会复制粘贴外还要点推荐那!   第一步:原理  事件被触发,方法被实现. 对于全选事件,被触发有两种方式可写,一个是通过原生extjs方式触发 ...

  7. maven 依赖冲突的问题

    如果原始系统的jarA依赖jarB1.0 而新引入的jarC依赖jarB2.0 导致系统启动报错,提示冲突,这时为了保证原始系统的稳定性, 在pom.xml文件中引入jarC时,需要exclude掉j ...

  8. OpenWrt启动过程分析

    openwrt是通过一系列shell脚本进行启动流程的组织,下面是启动流程的提纲.如 果想详细了解启动的过程,则需要仔细走读脚本文件. 1. 在make menuconfig 选择target平台 B ...

  9. 请教如何实现UITextField值变化的实时监视

    上网搜索以后发现基本的处理方法大概有三种1.KVO方式[textField addObserver:self forKeyPath:@"text" options:0 contex ...

  10. C语言求2的100次方怎么解,大整数运算

    #include "stdio.h"int ai[100]; void main(){ int a,b; ai[99]=1; for(b=0;b<100;b++)  for( ...