java一维数组查找,求最大最小中位数,增加,删除元素

本文介绍了Java中一维数组如何进行扩容,列举了三种扩容方法,并详细讲解了如何打印数组、使用数组的常见方法。此外,还涉及到在数组中查找最大值、最小值,计算中位数以及增加和删除元素的操作。通过示例代码,帮助读者深入理解Java数组操作。

数组扩容
数组扩容三种方式
打印数组
数组常用方法

以下为具体代码

import java.util.Arrays;
import java.util.Scanner;

/**
 * 数组
 * @author swjtu
 * @project EssentialAlgorithms
 * @date 2019年5月27日
 * @remarks TODO
 */
public class arrayDemo {

	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		int[] testArray = new int[9];
		
		for (int i = 0; i < testArray.length; i++) {
			testArray[i] = (int)(Math.random()*10000)%100;
		}
			String printArray1 = Arrays.toString(testArray);
			System.out.println(printArray1);
		
//		System.out.println("\n请输入要查找的元素:");
//		int target = input.nextInt();
//		System.out.println(searchElement(testArray,target));
		System.out.println("\n数组中最大的元素为"+maxElement(testArray));     
		System.out.println("数组中最小的元素为"+minElement(testArray));
		System.out.println("数组中平均值"+average(testArray));
		System.out.println("数组中中位数"+median(testArray));
		System.out.println("请输入删除元素:");
		int deleteNumber = input.nextInt();
		System.out.println("数组中删除一个数"+deleteNumber+"后:");
		delete(testArray,deleteNumber);
		
		String printArray2 = Arrays.toString(testArray);
		System.out.println(printArray2);
		
		System.out.println("请输入插入元素:");
		int insertNumber = input.nextInt();
		String printArray3 = Arrays.toString(insert(testArray,9,insertNumber,3));
		System.out.println(printArray3);

	}
	
	//查找元素,存在返回下标,不存在-1
	public static int searchElement(int[] array,int target) {
		//int index =0;
		for (int i = 0; i < array.length; i++) {
			if(target == array[i])
			return i;
		}
		return -1;
	}
	
	//查找数组中的最大值
	public static int maxElement(int[] array) {
		int maxNumber = array[0];
		for (int i = 0; i < array.length; i++) {
			if(array[i]>maxNumber)
				maxNumber = array[i];
		}
		return maxNumber;
	}
	//查找数组中的最小值
	public static int minElement(int[] array) {
		int minNumber = array[0];
		for (int i = 0; i < array.length; i++) {
			if(array[i]<minNumber)
				minNumber = array[i];
		}
		return minNumber;
	}
	
	//求出数组的平均值
	public static double average(int[] array) {
		int total = 0;
		for (int i = 0; i < array.length; i++) {
			total += array[i];
		}
		return (double)total/array.length;
	}
	
	//找数组中的中位数
	//不能处理偶数个元素的数组,也不能处理多个元素相同数值的情况
	public static int median(int[] array) {
		for (int i = 0; i < array.length; i++) {
			int num_larger = 0;
			int num_smaller = 0;
			for (int j = 0; j < array.length; j++) {
				if(array[j]<array[i])
					num_smaller++;
				if(array[j]>array[i])
					num_larger++;
			}
			if(num_smaller ==num_larger)
			return array[i];
		}
		return -1;
	}
	
	//插入一个元素,position为插入下标,size是数组容量
	public static int[] insert(int[] array1, int size, int value,int position) {
		//数组扩容
		if(array1.length ==size) {
			//法1
//			int[] array2 = java.util.Arrays.copyOf(array1, size*2);
			//法2
//			int array2[] = new int[array1.length*2];
//			for (int i = 0; i < array1.length; i++) {
//				array2[i] = array1[i];
//			}
			//法三
			int[] array2 = new int[array1.length*2];
			System.arraycopy(array1, 0, array2, 0, array1.length);
			
			for (int i = array1.length-1; i > position; i--) {
			array2[i+1] = array2[i];
		}
			array2[position] = value;
			return array2;
		}
		else {
			for (int i = array1.length-1; i > position; i--) {
				array1[i+1] = array1[i];
			}
			array1[position] = value;
			return array1;
		}
			
		
		
	}
	
	//删除一个元素
	public static void delete(int[] array, int value) {
		int index = -1;
		for (int i = 0; i < array.length; i++) {
			if(array[i] == value)
				index = i;
		}
		for (int j = index; j < array.length-1; j++) {
			array[j] = array[j+1];
		}
		array[array.length-1] = 0;
		
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值