以下为具体代码
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;
}
}

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

被折叠的 条评论
为什么被折叠?



