java实现数组的操作(最大值,最小值,逆序排序,查询,数组的追加,添加,删除)

java实现数组的操作(最大值,最小值,逆序排序,查询,数组的追加,添加,删除)

package com.zr.demo01;

import java.util.Arrays;

//数组的操作(最大值,最小值,逆序排序,查询,数组的追加,添加,删除)

public class Tenth {

	public static void main(String[] args) {
		int[] arr=new int[] {12,35,88,14,67,56,27};
		
		//求最大值
		System.out.println("最大值为:"+getMax(arr));//最大值为:88
		
		//求最小值
		System.out.println("最大值为:"+getMin(arr));//最大值为:12
		
		//逆序排序
		System.out.println("排序前的数组:"+Arrays.toString(arr));
		reverse(arr);
		System.out.println("排序后的数组:"+Arrays.toString(arr));
		
		//查询
		int select = select(arr, 14);
		if (select==1) {
			System.out.println("该数字在数组中存在");
		}else {
			System.out.println("该数字在数组中不存在");
		}
		
		//数组的追加
		int[] arr1=new int[] {1,2,3,4,5};
		int[] arr2=new int[] {6,7,8,9,10};
		System.out.println("追加后的数组:"+Arrays.toString(append(arr1, arr2)));
		
		int[] arr3=new int[10];
		//添加
		int curLength=0;
		curLength  = add(arr3,12, curLength,0);
		System.out.println(Arrays.toString(arr3));
		//删除
		curLength=delete(arr3, curLength, 0);
		System.out.println(Arrays.toString(arr3));
		
		
	}
	
	/**
	 * 求数组里面的最大值
	 * @param arr
	 * @return
	 */
	public static int getMax(int[] arr) {
		int max=arr[0];
		for (int num : arr) {
			max=max>=num?max:num;
		}
		return max;
	}
	
	/**
	 * 求数组里面的最小值
	 * @param arr
	 * @return
	 */
	public static int getMin(int[] arr) {
		int min=arr[0];
		for (int num : arr) {
			min=min<=num?min:num;
		}
		return min;
	}

	/**
	 * 逆序排序
	 * @param arr
	 */
	public static void reverse(int[] arr) {
		for (int i = 0; i < arr.length>>1; i++) {
			int temp=arr[i];
			arr[i]=arr[arr.length-1-i];
			arr[arr.length-1-i]=temp;
		}
	}
	
	/**
	 * 查询
	 * @param arr
	 * @param num
	 * @return
	 */
	public static int select(int[] arr,int num) {
		/*
		for (int i : arr) {
			if (i==num) {
				return 1;
			}
		}
		return -1;
		*/
		return Arrays.binarySearch(arr, num);
	}
	
	/**
	 * 数组的追加(将一个数组的数据添加到另一个数组的后面)
	 * @param arr1
	 * @param arr2
	 * @return
	 */
	public static int[] append(int[] arr1,int[] arr2) {
		int[] newArr = new int[arr1.length+arr2.length];
		//System.arraycopy(被复制的数组, 从被复制的数组的哪一位开始复制, 目标数组, 复制到目标数组的哪一位, 从被复制数组复制多少个);
		System.arraycopy(arr1, 0, newArr, 0, arr1.length);
		System.arraycopy(arr2, 0, newArr, arr1.length, arr2.length);
		return newArr;
	}
	
	/**
	 * 添加数据
	 * @param arr
	 * @param curLength
	 * @param index
	 * @return
	 */
	public static int add(int[] arr,int data,int curLength,int index) {
		//数组已满,不能添加数据
		if (curLength==arr.length) {
			System.out.println("数组已满,不能添加数据");
			return curLength;
		}
		//插入的数组位置不正确
		if (index<0||index>curLength) {
			System.out.println("插入的数组位置不正确");
			return curLength;
		}
		//给数据腾出index位置
		for(int i=curLength-1;i>=index;i--) {
			arr[i+1]=arr[i];
		}
		//赋值
		arr[index]=data;
		System.out.println("添加成功");
		return ++curLength;
	}
	
	/**
	 * 删除数据
	 * @param arr
	 * @param curLength
	 * @param index
	 * @return
	 */
	public static int delete(int[] arr,int curLength,int index) {
		//数组为空,不能删除
		if (curLength==0) {
			System.out.println("数组为空,不能删除");
			return curLength;
		}
		//数组删除的位置不正确
		if (index<0||index>=curLength) {
			System.out.println("数组删除的位置不正确");
			return curLength;
		}
		//删除数据
		for(int i=index;i<=curLength;i++) {
			arr[i]=arr[i+1];
		}
		System.out.println("删除成功");
		return --curLength;
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值