java中常用的数组工具类

在java编程中,有一些针对数组的操作需要经常使用,但是系统又不提供现成的让用户可以直接调用。所以,总是需要用户进行手写。
在这里,对于java编程中经常用到的一些数组操作,进行了总结,并封装进一个自定义数组工具类中:

主要包含的操作有:
求数组元素的最大值、最小值、和、平均值
反转数组
对数组进行排序(冒泡排序)
遍历数组
在数组中查找指定元素(线性查找)

具体的代码实现如下:

/*
 * 自定义数组的工具类
 * 
 */
public class ArrayUtil {

	// 求数组的最大值
	public int getMax(int[] arr) {
		int maxValue = arr[0];
		for(int i=1;i<arr.length;i++) {
			if(maxValue < arr[i]) {
				maxValue = arr[i];
			}
		}
		return maxValue;
	}

	// 求数组的最小值
	public int getMin(int[] arr) {
		int minValue = arr[0];
		for(int i=1;i<arr.length;i++) {
			if(minValue > arr[i]) {
				minValue = arr[i];
			}
		}
		return minValue;
	}
	
	// 求数组的总和
	public int getSum(int[] arr) {
		int sum = 0;
		for(int i=0;i<arr.length;i++) {
			sum += arr[i];
		}
		return sum;
	}

	// 求数组的平均值
	public int getAvg(int[] arr) {
		
		//直接在方法中调用方法?
		return getSum(arr) / arr.length;
	}

	// 反转数组
	public void reverse(int[] arr) {
		for(int i=0;i<arr.length/2;i++) {
			int temp = arr[i];
			arr[i] = arr[arr.length-1-i];
			arr[arr.length-1-i] = temp;
		}
		
	}
	
	// 复制数组
	/**
	 * 注意:这里的方法的返回值是,复制得到的数组的首地址
	 * @param arr
	 * @return
	 */
	public int[] copy(int[] arr) {
		int[] arr1 = new int[arr.length];
		for(int i=0;i<arr1.length;i++) {
			arr1[i] = arr[i];
		}
		return arr1;
	}
	
	// 数组排序----从小到大排列
	public void sort(int[] arr) {
		//冒泡排序
		for(int i=0;i<arr.length-1;i++) {
			//外层循环表示,一共进行的趟数,比总的数组元素数少1
			for(int j=0;j<arr.length-1-i;j++) {
			/*
			 * 内层循环:第i趟,表示已经有i个元素确定好了位置(在数组的最后的地方存储)
			 * 而且,第i趟,最后比较的是倒数第i+1与倒数第i+2个元素的值
			 */
				if(arr[j] > arr[j+1]) {
					int temp = arr[j];
					arr[j] = arr[j+1];
					arr[j+1] = temp;
				}
			}
		}
	}

	// 遍历数组
	public void print(int[] arr) {
		for(int i= 0;i<arr.length;i++) {
			System.out.print(arr[i] + "\t");
		}
		System.out.println();
	}

	// 查找指定元素
	public int getIndex(int[] arr,int dest) {
		//假设数组没有序,用线性查找
		int i;
//		for(i=0;i<arr.length;i++) {
//			if(arr[i] == dest) {
//				System.out.println("找到了指定元素,位置为" + i +"(元素的索引)");
//				break;
//			}
//		}
//		if(i == arr.length) {
//			System.out.println("找不到需要查找的元素!");
//		}
		
		//简化一下
		for(i=0;i<arr.length;i++) {
			if (arr[i] == dest) {
				return i;//直接返回下标值,因为return有结束方法的作用
			}
		}
		return -1;//返回一个负值,表示没有找到
	}
	
}

学习java面向对象的第3天,加油!
坚持学习,坚持敲代码!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值