那些年,那些大神玩的数组

1. 什么是数组

  • 数组就是一种可以存放大量数据类型相同的变量的数据结构,是一种具有相同数据类型的数据集合。
  • 数组中的数据必须是同一种数据类型

2. 数组的基本要素

  • 数组名称
  • 数组元素
  • 元素下标
  • 数据类型

3. 如何使用数组

  • 声明数组
  • 分配内存空间
  • 给数组赋值
  • 使用数组
public class Main {
	public static void main(String[] args) {
		//声明数组:数据类型[] 数组名
		int[] array1;
		String array2[];
		//分配内存空间:创建数组必须指定长度,根据长度开辟一串连续的内存空间,长度不能修改
		array1 = new int[6];
		array2 = new String[7];
		//给数组赋值
		array1[0] = 50;
		array1[1] = 60;
		array2[1] = "Hello World";
		//使用数组
		System.out.println(array1[0]);
	}
}

在这里插入图片描述
在这里插入图片描述

数组中常见的错误

  • 数组声明时数据类型不匹配
  • 边声明边赋值必须写在同一行
  • 数组下标越界
  • 。。。。

数组中的常用的操作与方法

Java数组的深入研究

二维数组

public class Main {
	public static void main(String[] args) {
		//1. 声明二维数组
		int[][] array;
		//2. 开辟内存空间
		array = new int[2][5];
		//3. 赋值
		array[0][0] = 50;
		array[0][1] = 60;
		array[0][2] = 70;
		array[0][3] = 80;
		array[0][4] = 90;
		array[1][0] = 150;
		array[1][1] = 160;
		array[1][2] = 170;
		array[1][3] = 180;
		array[1][4] = 190;
		int[][] array2 = {{1,2,3},{4,5,6}};
		int[][] array3 = new int[][] {{1,2,3},{4,5,6}};
		System.out.println(array3[1][1]);	
	}
}
public class Main {
	public static void main(String[] args) {
		int[][] array = new int[3][6];
		int sum = 0;
		for(int i=0;i<array.length;i++) {
			System.out.println("------ 第"+(i+1)+"层货架 ------");
			for(int j=0;j<array[i].length;j++) {
				int num = (i+1)*(j+1);
				System.out.println("第"+(j+1)+"个格挡的鸡蛋个数:"+num);
				sum += num;
			}
		}
		System.out.println("鸡蛋的总数是:"+sum);
	}
}

  1. 求数组中的最大值
public class Test {
	public static void main(String[] args) {
		int[] array = {73,80,62,93,96,87};
		//求最大值
		int max = array[0];
		for(int i=1;i<array.length;i++) {
			if(array[i]>max) {
				max = array[i];
			}
		}
		System.out.println("数组中的最大值是"+max);
	}
}

返回数组的操作与方法


  1. 求数组中的最小值
public class Test {
	public static void main(String[] args) {
		int[] array = {73,80,62,93,96,87};
		//求最小值
		int min = array[0];
		for(int i=1;i<array.length;i++) {
			if(array[i]<min) {
				min = array[i];
			}
		}
		System.out.println("数组中的最小值是"+min);
	}
}

返回数组的操作与方法


  1. 在数组指定位置插入一个数据
public class Test2 {
	public static void main(String[] args) {
		int[] array = {96,93,87,80,73,62};
		System.out.println("添加之前的数组");
		for(int i=0;i<array.length;i++) {
			System.out.print(array[i]+" ");
		}
		//将83插入到下标为3的位置
		//96,93,87,83,80,73,62
		//创建新的数组
		int[] array2 = new int[array.length+1];
		for(int i=0;i<3;i++) {
			array2[i] = array[i];
		}
		for(int j=4;j<array2.length;j++) {
			array2[j] = array[j-1];
		}
		array2[3] = 83;
		System.out.println("");
		System.out.println("添加之后的数组");
		for(int i=0;i<array2.length;i++) {
			System.out.print(array2[i]+" ");
		}
	}
}

返回数组的操作与方法


  1. 数组排序
import java.util.Arrays;

public class Test3 {
	public static void main(String[] args) {
		int[] array = {73,80,62,93,96,87};
		for(int i=0;i<array.length-1;i++) {
			for(int j=0;j<array.length-1-i;j++) {
				if(array[j]<array[j+1]) {
					int temp = array[j];
					array[j] = array[j+1];
					array[j+1] = temp;
				}
			}
		}
		System.out.println(Arrays.toString(array));
		System.out.println(array);	//输出的是内存地址
	}
}

返回数组的操作与方法


  1. 其他方法
import java.util.Arrays;

public class Main {
	public static void main(String[] args) {
		int[] array = {73,80,62,93,96,87};
		int[] array2 = {73,80,62,93,96,87};
		int[] array3 = {66,55,44,33,22};
		boolean flag = Arrays.equals(array, array3);
		if(flag == true) {
			System.out.println("array, array3两个数组相等");
		}else {
			System.out.println("array, array3两个数组不相等");
		}
		
		boolean flag1 = Arrays.equals(array, array2);
		if(flag1 == true) {
			System.out.println("array, array2两个数组相等");
		}else {
			System.out.println("array, array2两个数组不相等");
		}
		
		System.out.println("输出array数组的内存地址");
		System.out.println("输出array数组的存储的内容: " + Arrays.toString(array));
		Arrays.sort(array);
		System.out.println("输出array数组排序后的内容:" + Arrays.toString(array));
		
		//fill 填充数组
		Arrays.fill(array2, 66);
		System.out.println("用66覆盖填充array2数组: " + Arrays.toString(array2));
		
		//copyOf 复制数组到另一个数组中
		int[] copyArray = Arrays.copyOf(array3, 10);
		System.out.println("把数组array3复制到 大小为 10 的copyArray数组中: " + Arrays.toString(copyArray));
		
		//查找某一数值在数组中的下标
		int index = Arrays.binarySearch(array, 96);
		System.out.println(index);
	}
}

返回数组的操作与方法


回到目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值