Java学习个人备忘录之数组工具类
下面主要讲解一个针对数组操作的工具类。
a.java -- 工具类文件
//按理来说要先编译本文件, 然后再编译主函数
class ArrayTool
{
/*
获取整型数组的最大值
*/
public int getMax(int[] arr)
{
int maxIndex = 0;
for (int x=1; x<arr.length ; x++ )
{
if (arr[x]>arr[maxIndex])
{
maxIndex = x;
}
}
return arr[maxIndex];
} /*
选择排序
*/
public void selectSort(int[] arr)
{
for (int x=0; x<arr.length-1 ; x++ )
{
for (int y=x+1; y<arr.length ; y++ )
{
if (arr[x]>arr[y])
{
swap(arr,x,y);
}
}
}
} //交换两个单元的值
private void swap(int [] arr,int a,int b)
{
int temp = arr[a];
arr[a] = arr[b];
arr[b] = arr[a];
} /*
根据该单元的值,找到该单元的键
*/
public int getIndex(int[] arr,int key)
{
for (int x=0; x<arr.length ; x++ )
{
if (arr[x]==key)
{
return x;
}
}
return -1;
} /*
将数组转成字符串
*/
public String arrayToString(int[] arr)
{
String str = "[";
for (int x=0; x<arr.length ; x++ )
{
if (x != arr.length-1)
str = str + arr[x] + ", ";
else
str = str + arr[x] + "]";
}
return str;
}
}
b.java -- 主函数
//实际上直接编译主函数就可以,其他的有关文件就会被自动编译
class ArrayToolDemo
{
public static void main(String[] args)
{
int[] arr = {4,8,2,9,7,6}; ArrayTool tool = new ArrayTool(); int max = tool.getMax(arr);
System.out.println("max="+max);
int index = tool.getIndex(arr,10);
System.out.println("index="+index);
}
}
工具类中的静态的使用
在类中没有访问到成员变量的方法,我们将它变为静态类。
因为我们在调用方法时,需要先创建对象,如ArrayTool tool = new ArrayTool();
但是我们所要调用的方法 如 getMax(),它并没有访问成员变量,如果我们还是要创建对象的话,那么就是在浪费空间。
优化后的代码如下:
c.java
class ArrayTool
{
private ArrayTool(){};
//该类中的方法都是静态的,所以该类是不需要创建对象的.
//为了保证不让其他人创建对象,可以将构造函数私有化. /*
获取整型数组的最大值
*/
public static int getMax(int[] arr)
{
int maxIndex = 0;
for (int x=1; x<arr.length ; x++ )
{
if (arr[x]>arr[maxIndex])
{
maxIndex = x;
}
}
return arr[maxIndex];
} /*
选择排序
*/
public static void selectSort(int[] arr)
{
for (int x=0; x<arr.length-1 ; x++ )
{
for (int y=x+1; y<arr.length ; y++ )
{
if (arr[x]>arr[y])
{
swap(arr,x,y);
}
}
}
} //交换两个单元的值
private static void swap(int [] arr,int a,int b)
{
int temp = arr[a];
arr[a] = arr[b];
arr[b] = arr[a];
} /*
根据该单元的值,找到该单元的键
*/
public static int getIndex(int[] arr,int key)
{
for (int x=0; x<arr.length ; x++ )
{
if (arr[x]==key)
{
return x;
}
}
return -1;
} /*
将数组转成字符串
*/
public static String arrayToString(int[] arr)
{
String str = "[";
for (int x=0; x<arr.length ; x++ )
{
if (x != arr.length-1)
str = str + arr[x] + ", ";
else
str = str + arr[x] + "]";
}
return str;
}
}
b.java
class ArrayToolDemo
{
public static void main(String[] args)
{
int[] arr = {4,8,2,9,7,6}; // ArrayTool tool = new ArrayTool(); // 因为是静态方法,所以省略了这一步 int max = ArrayTool.tool.getMax(arr);
System.out.println("max="+max); int index = ArrayTool.tool.getIndex(arr,10);
System.out.println("index="+index);
}
}
Java学习个人备忘录之数组工具类的更多相关文章
- Java学习笔记49(DBUtils工具类二)
上一篇文章是我们自己模拟的DBUtils工具类,其实有开发好的工具类 这里使用commons-dbutils-1.6.jar 事务的简单介绍: 在数据库中应用事务处理案例:转账案例 张三和李四都有有自 ...
- Java学习笔记48(DBUtils工具类一)
上一篇的例子可以明显看出,在增删改查的时候,很多的代码都是重复的, 那么,是否可以将增删改查封装成一个类,方便使用者 package demo; /* * 实现JDBC的工具类 * 定义方法,直接返回 ...
- java学习笔记37(sql工具类:JDBCUtils)
在之前的内容中,我们发现,当我们执行一条语句时,每新建一个方法,就要重新连接一次数据库,代码重复率很高,那么能不能把这些重复代码封装成一个类呢,我们学习方法时,就学习到方法就是为了提高代码的利用率,所 ...
- Java学习个人备忘录之数组
数组 概念:同一种类型数据的集合,其实数组就是一个容器. 数组的好处:可以自动给数组中的元素从0开始编号,方便操作这些元素. 格式1:元素类型[] 数组名 = new 元素类型[元素个数]; 格式2: ...
- Java学习笔记七——数组工具类Arrays
数组工具类Arrays Java提供的Arrays类里包含的一些static修饰的方法可以直接操作数组.若将里面的方法用熟的话,那开发效率会大大提高.下面介绍其中的方法. List<T> ...
- Java学习:数组工具类Arrays
数组工具类Arrays java.util.Arrays是一个与数组相关的工具类,里面提供了大量的静态方法,用来实现数组常见的操作. public static String toString(数组) ...
- 数组工具类 - ArrayUtil.java
数组工具类,提供数组.对象之间转换的方法. 源码如下:(点击下载 - ArrayUtil.java .commons-lang-2.6.jar) import java.lang.reflect.Ar ...
- java数组 数组工具类Arrays
一.数组 1.java有严格的数据类型限制,一个数组只能声明一个数据类型,存放同一种数据类型. 2.虽然只能存放一种数据类型,假设A , 如果数据类型B 继承A,依然能存放进入数组. 3.数组的初始化 ...
- java - day005 - 数组工具类, 数组复制,二维数组,变量,方法, 面向对象
1. java.util.Arrays 数组工具类 Arrays.toString (数组) 数组值链接字符串 Arrays.sort(数组) 基本类型: 优化的快速排序 引用类型: 优化的合 ...
随机推荐
- angularjs脏机制
Angular 每一个绑定到UI的数据,就会有一个 $watch 对象. watch = { name:'', //当前的watch 对象 观测的数据名 getNewValue:function($s ...
- Git-2.15.1.2-64-bit安装
方法/步骤 我们在百度搜索git,然后在git的官网上找到git的下载页面,如下图所示.在首页在Downloads处选择下载Windows版本,当然您可以根据需求下载其他版本的安装文件. ...
- 【Hadoop故障处理】高可用(HA)环境DataNode问题
[故障背景] NameNode和DataNode进程正常运行,但是网页找不到DataNode,DataNode为空.各个节点机器之间可以ping同主机名. [日志排查] 众多日志中找到如下关键点错误信 ...
- api帮助文档的制作
在java开发中,往往需要用到别人写的类或是自己写的类被别人拿去用. 而使用类的过程中,类中的方法对使用者而言并不完全透明,这个时候帮助文档可以让我们清楚的了解这个类中的方法该如何调用. 下面简述一下 ...
- 【Keil】Keil5添加源程序和头文件
xxx.c就是源程序 xxx.h就是头文件 [源程序添加方法] 双击文件夹,例如图片上的Source,跳出弹窗,选择需要添加的源程序即可 [添加头文件的方法] 1.首先点击图片红框处,或是在文件夹te ...
- python三大器之while,if,for循环
一.for循环(遍历循环) 在Python你可能要经常遍历列表的所有元素,对每个元素执行相同的操作;对于包含数字的列表,可能要对每个元素进行相同的计算;在网站中,可能需要显示文章中的每个标题等等.某一 ...
- 2 引用 深copy 浅copy
1. is == 总结 is 是比较两个引用是否指向了同一个对象(引用比较). == 是比较两个对象是否相等. In [1]: a = [11,22,33] In [2]: b = [11,22,33 ...
- ORB-SLAM(十)LoopClosing
构造函数 LoopClosing(Map* pMap, KeyFrameDatabase* pDB, ORBVocabulary* pVoc,const bool bFixScale); 主要分两部分 ...
- CLR via c#读书笔记八:泛型
1.定义泛型类型或方法时,为类型指定的任何变量(比如T)都称为类型参数.使用泛型类型或方法时指定的具体数据类型称为类型实参. 2.System.Collections.Concurrent命名空间提供 ...
- dubbo之注册管理中心
一.在dubbo的框架中注册中心是必要的一个环节,这个也是分布式部署的一个必要环节.在dubbo的架构基本图中可以看出,基本上所有的服务都是通过注册中心进行注册,然后在通过注册中心,暴露出接口来. 二 ...