java实战之数组工具集
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实战之数组工具集的更多相关文章
- Java学习:数组工具类Arrays
数组工具类Arrays java.util.Arrays是一个与数组相关的工具类,里面提供了大量的静态方法,用来实现数组常见的操作. public static String toString(数组) ...
- Java中Arrays数组工具类的使用全解
本文几乎涵盖了所有的Arrays工具类(基于Java 11)的方法以及使用用例,一站式带你了解Arrays类的用法,希望对大家有帮助. 码字不易,三连支持一下吧 Arrays数组工具类 方法一览表 快 ...
- Java程序员常用工具集
我发现很多人没办法高效地解决问题的关键原因是不熟悉工具,不熟悉工具也还罢了,甚至还不知道怎么去找工具,这个问题就大条了.我想列下我能想到的一个Java程序员会用到的常用工具. 一.编码工具 1.IDE ...
- java - day005 - 数组工具类, 数组复制,二维数组,变量,方法, 面向对象
1. java.util.Arrays 数组工具类 Arrays.toString (数组) 数组值链接字符串 Arrays.sort(数组) 基本类型: 优化的快速排序 引用类型: 优化的合 ...
- Java学习笔记七——数组工具类Arrays
数组工具类Arrays Java提供的Arrays类里包含的一些static修饰的方法可以直接操作数组.若将里面的方法用熟的话,那开发效率会大大提高.下面介绍其中的方法. List<T> ...
- 数组工具类 - ArrayUtil.java
数组工具类,提供数组.对象之间转换的方法. 源码如下:(点击下载 - ArrayUtil.java .commons-lang-2.6.jar) import java.lang.reflect.Ar ...
- java数组 数组工具类Arrays
一.数组 1.java有严格的数据类型限制,一个数组只能声明一个数据类型,存放同一种数据类型. 2.虽然只能存放一种数据类型,假设A , 如果数据类型B 继承A,依然能存放进入数组. 3.数组的初始化 ...
- JAVA ArrayUtils 数组工具类
package com.sicdt.library.core.utils; import java.util.ArrayList; import java.util.Arrays; import ja ...
- java常用流处理工具StreamTool 常见的InputStream流转字符串, 转字节数组等等
ava 常用流处理工具 StreamTool ,常见的InputStream 流转字符串, 转字节数组等等 **应用场景: ** 1. 文件上传 2. js / css / img 等文件读取输出. ...
随机推荐
- MVVM之View和ViewModel的关联
概要: 将所有的VM在加载到Application的Static Resource中,然后在View中用标签指定. 实现: 1)采用特性指定要添加到StaticResource中的对象 public ...
- kissy
<!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8& ...
- SQL替换空格,制表符,换行符,回车符.
首先是空格的替换,很重要的有点是,要确保字段的类型,不是char或nchar等固定的类型,否则无法去掉空格. 去掉空格很简单,如下为SQL实例: --去掉 T_StuffBasic 表中FBranch ...
- C#中的Dictionary简介
简介在C#中,Dictionary提供快速的基于兼职的元素查找.当你有很多元素的时候可以使用它.它包含在System.Collections.Generic名空间中. 在使用前,你必须声明它的键类型和 ...
- Android手机修改Hosts的方法
Android手机是和Google帐号紧密联系的,由于中国的操蛋情况,很多时候Google帐号无法登录,导致Android市场无法使用. 在电脑上我们通过修改Hosts方法可以解决Google帐号的登 ...
- MySQL命令行下查看运行状态
查看MySQL的运行状态用命令行的show语句show status是查看MySQL运行情况,和上面那种通过pma查看到的信息基本类似. show variables是查看MySQL的配置参数,还可以 ...
- 设置 textField.placeholder的颜色和大小
textField.placeholder = @"请输入手机号码"; [textField setValue:[UIColor blue] forKeyPath:@"_ ...
- 百度ios 开发面试题
百度移动云可穿戴部门的面试经历,面试官都非常热情友好,一上来到弄的我挺不好意思的.下面记录一下自己的面试过程,因为我真的没啥面试经验,需要总结下. 1面 Objective C runtime lib ...
- NSString NSCFString区别
NSString 是 NSCFString的父类 在于NSString是个class cluster,一个类簇.什么是一个类簇?简单的来说,NSString是个“工厂类”,然后它在外层提供了很多方法接 ...
- 文字和表单(checkbox/radio)元素垂直对齐方法,兼容Firefox和IE。
这几天在做表单时总会碰到复选框(checkbox)和单选框(radio)与文字不对齐的问题,要不是checkbox上浮了,要不是文字上浮.在前端开发过程中,单(复)选框和它们后面的提示文字在不进行任何 ...