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(数组) 基本类型: 优化的快速排序 引用类型: 优化的合 ...
随机推荐
- 利用ascii码生成26个英文字母
<script> let a = ""; for (var i = 65; i < 91; i++) { a += String.fromCharCode(i); ...
- laravel 闪存
https://blog.csdn.net/ckdecsdn/article/details/52083093
- Python学习 :json、pickle&shelve 模块
数据交换格式 json 模块 json (JavaScript Object Notation)是一种轻量级的数据交换语言,以文字为基础,且易于让人阅读.尽管 json 是JavaScript的一个子 ...
- 《PHP实用问题解决案例》系列分享专栏
<PHP实用问题解决案例>已整理成PDF文档,点击可直接下载至本地查阅https://www.webfalse.com/read/201725.html 文章 PHP汉字拼音转换和公历农历 ...
- vim 粘贴文本,格式混乱 tab
粘贴的代码如上.修改方法: 方法一: set paste 贴完后,设置 set nopaste 恢复代码缩进. 方法二:修改配置文件 vim /etc/vim/vimrc set pastetoggl ...
- PHP.47-TP框架商城应用实例-后台22-权限管理-角色和管理员的关系
角色和管理员的关系 角色功能 管理员功能 角色与管理的关联要通过管理-角色表进行{多对多} /********* 管理-角色表 *********/ drop if exists p39_admin_ ...
- BZOJ1222_ 产品加工_KEY
题目传送门 我们设f[i]表示用机器A加工,时间还剩下i时的最优加工时间. 对于每一个时间可以加工的物品,有以下几个选择: 1.用机器A加工 2.用机器B加工 3.A和B一起加工 所以得到方程: f[ ...
- netty之管道处理流程
1.我们在使用netty的是有都会存在将channelBuffer的数据处理成相应的String或者自定义数据.而这里主要是介绍管道里面存在的上行和下行的数据处理方式 2.通过一张图片来看一下具体管道 ...
- 使用apache cgi运行ruby脚本
在ubuntu下 进入 /usr/lib/cgi-bin目录 新建文件 ruby.cgi 内容如下 #!/usr/bin/ruby print "Content-type: text/htm ...
- url和uri的一些问题
一 url和uri的区别: uri: uniform resource identifier,统一资源标识符. url: uniform resource locator,统一资源定位符. 做一个类比 ...