目录

课前先导

一、输出数组中的最大/最小值

二、交换两个变量的值

三、向数组中添加元素

四、修改数组中的元素

 五、删除数组中的元素

六、Arrays类中的方法


课前先导

今天我们就来看一下一维数组的用法以及Arrays类的方法

一、输出数组中的最大/最小值

首先我们定义个数组,然后定义变量接收最大值和最小值

public static void main(String[] args){
		
		int[] arr = {24,12,84,65,31};
		int min = 0; //接收最小值
		int max = 0; //接收最大值
		
		for(int i = 0;i < arr.length;i++){
			if(min > arr[i]){
				min = arr[i];
			}
			
			if(max < arr[i]){
				max = arr[i];
			}
		}
		System.out.println("最小值:"+min);
		System.out.println("最大值:"+max);
	}

java从一个数组中取出一个最接近的 java获取一维数组的最小值_java

 出问题了,我们数组的最小值是12;而我们输出确实我们初始化的0;我们再来看一下,把数组中的整数全改为负数

public static void main(String[] args){
		
		int[] arr = {-24,-12,-84,-65,-31};
		int min = 0; //接收最小值
		int max = 0; //接收最大值
		
		for(int i = 0;i < arr.length;i++){
			if(min > arr[i]){
				min = arr[i];
			}
			
			if(max < arr[i]){
				max = arr[i];
			}
		}
		System.out.println("最小值:"+min);
		System.out.println("最大值:"+max);
	}

java从一个数组中取出一个最接近的 java获取一维数组的最小值_System_02

 最大值应该是-12,这里输出的最大值也是我们的初始化值0,通过这两个案例说明一个问题:

数组中输出最大值或最小值时,接收的变量的初始值不能为0

我们的解决办法就是:

把数组的第一个元素赋值给最大值或最小值

public static void main(String[] args){
		
		int[] arr = {-24,12,-84,65,-31};
		int min = arr[0]; //接收最小值
		int max = arr[0]; //接收最大值
		
		for(int i = 0;i < arr.length;i++){
			if(min > arr[i]){
				min = arr[i];
			}
			
			if(max < arr[i]){
				max = arr[i];
			}
		}
		System.out.println("最小值:"+min);
		System.out.println("最大值:"+max);
	}

java从一个数组中取出一个最接近的 java获取一维数组的最小值_System_03

思路总结:

(1)定义一个变量接收数组中的最大值或最小值 ;

(2)将数组中的子一个元素(下标为0)赋值给变量

(3)利用for循环将变量依次与数组中的元素进行比较,最后输出变量

二、交换两个变量的值

这个算是之前我们漏掉的知识点,不过我们前面好像没有用到,我这里给补充一下

public static void main(String[] args){
		
		int m = 100;
		int n = 200;
		int temp;  //定义第三个变量来实现两个数据的交换
		System.out.println("交换前的m = "+m);
		System.out.println("交换前的n = "+n);
		System.out.println("***************************");
		
		temp = m; //temp = 100
		m = n;  // m=200
		n = temp;// n = 100
		System.out.println("交换后的m = "+m);
		System.out.println("交换后的n = "+n);
	}

java从一个数组中取出一个最接近的 java获取一维数组的最小值_数据结构_04

三、向数组中添加元素

我们在一维数组中讲过,一维数组的长度只要指定,就不能更改,所以我们想要增加数组元素,就不能在原先的数组上动手脚。这里我们往数组中添加一个元素

public static void main(String[] args){
		Scanner input = new Scanner(System.in);
		
		int[] arr = {11,22,33,44,55};//原数组
		
		int[] arrShow = new int[arr.length+1];//声明一个新的数组
		for(int i = 0;i < arr.length;i++){ //将原数组的元素赋值给新元素
			arrShow[i] = arr[i];
		}
		
		System.out.print("请输入你要添加的元素:");//添加元素
		arrShow[arr.length] = input.nextInt();
		for(int j = 0;j < arrShow.length;j++){ //输出添加元素后的数组
			System.out.print(arrShow[j]+"\t");
		}
		
	}

java从一个数组中取出一个最接近的 java获取一维数组的最小值_数据结构_05

 思路总结:

(1)声明一个新数组,长度要比原数组大(具体看你要添加的元素个数);

(2)使用for循环,将原来数组里元素按照顺序存入到新的数组中;

(3)使用Scanner类获取你要添加的数组元素;

(4)将要插入的元素存储到插入位置

四、修改数组中的元素

直接给需要修改的元素下标重新赋个值

public static void main(String[] args){
		
		int[] arr = {11,22,33,44,55};
		
		arr[2] = 123;
		for(int i = 0;i < arr.length;i++){
			System.out.print(arr[i]+"\t");
		}
	}

java从一个数组中取出一个最接近的 java获取一维数组的最小值_数据结构_06

 五、删除数组中的元素

删除数组中的一个元素,并将后面的元素往前移动

public static void main(String[] args){
		Scanner input = new Scanner(System.in);
		
		int[] arr = {11,22,33,44,55};//原数组
		//删除下标为2的元素,并将后面的元素往前移
		for(int i = 2;i < arr.length-1;i++){
			arr[i] = arr[i+1];
		}
		arr[arr.length-1] = 0;
		
		for(int j = 0;j < arr.length;j++){ //删除元素后的数组
			System.out.print(arr[j]+"\t");
		}
	}

java从一个数组中取出一个最接近的 java获取一维数组的最小值_System_07

 这里讲一下为什么数组元素位置移动的时候 i <arr.length-1

因为我们是通过下标访问数组的,数组的最后一个元素的下标是arr.length-1,我们通过下标把下标为 i+1 的元素赋值给 下标为 i 的元素,当for循环循环到最后一个元素arr.length-1时,程序运行是不是会把下标为arr.length的元素赋值给最后一个元素,但下标为arr.length的元素不存在啊,他超出了我们的数组长度。而且我们删除元素是把后面的元素前移,后面应该是我们的数组类型的默认值。

思路总结:

(1)找到要删除元素的下标;

(2)利用for循环将后面的元素前移;

(3)将数组最后的元素修改为默认值。

六、Arrays类中的方法

Arrays类是java语言util包中封装好的一个类,此类包含用来操作数组(比如排序和搜索)的各种方法,我们用Arrays包中的类是需要导包的(import java.util.Arrays)。此类还包含一个允许将数组作为列表来查看的静态工厂。

java从一个数组中取出一个最接近的 java获取一维数组的最小值_java_08

public static void main(String[] args){
		
		int[] arr01 = {11,22,33,44,55};
		int[] arr02 = {11,22,33,44,55};
		int[] arr03 = {15,48,32,54,21};
		
		//比较两个数组是否相等
		boolean result01 = Arrays.equals(arr01, arr02);
		boolean result02 = Arrays.equals(arr01, arr03);
		System.out.println("arr01与arr02是否相等:"+result01);
		System.out.println("arr01与arr03是否相等:"+result02);
		System.out.println();
		
		//将数组升序排序
		Arrays.sort(arr03);
		
		//将数组转换成字符串
		System.out.println("将数组转换成字符串输出:"+Arrays.toString(arr03));
		System.out.println();
		
		//将数组中所有的元素都赋同一个值
		Arrays.fill(arr02,100);
		System.out.println("数组元素赋同一个值: "+Arrays.toString(arr02));
		System.out.println();

		//复制数组中固定个数的元素形成一个新的数据类型相同的数组
		int[] arrNew = Arrays.copyOf(arr01, 3);
		System.out.println("复制的新数组:"+Arrays.toString(arrNew));
		System.out.println();
		
		//寻找元素在数组中的下标
		Arrays.sort(arr01);//先把数组元素按升序排序
		int result = Arrays.binarySearch(arr01, 44);
		System.out.println("元素44在数组arr01中的下标为:"+result);
	}

 

java从一个数组中取出一个最接近的 java获取一维数组的最小值_数组_09

 今天的内容都是比较重要的,都是大家需要掌握的,虽然我们最后讲了Arrays类的方法,但前面的还是要求大家掌握,别偷懒,懒惰是索价极高的奢侈品,一旦到期清付,必定偿还不起,想不到自己有一天还能用得起奢侈品是不是。好了,今天的学习就到这里了,我是一米八、有腹肌、低于半小时你报警的Loveletter,觉得内容不错的小伙伴可以点点关注,我们下篇博文见,再见!

java从一个数组中取出一个最接近的 java获取一维数组的最小值_java_10