Java一维数组和二维数组(持续更新…)

数组的基础知识:

1.什么是数组:
数组是相同类型的数据按顺序组成的一种引用数据类型
在这里插入图片描述
提醒:数组一旦被创建,它的大小是固定的。

2.数组声明:
数组类型[]   数组名 或则 数据类型 数组名[]
3.创建数组:

  • 先声明,后创建
    数组名 = new 数据类型[数组长度]
int[] arr; //声明数组
arr = new int[10] //创建一个长度为10的整形数组
  • 声明的同时创建数组
    数据类型[] 数组名 = new 数据类型[数组长度]
int[] arr = new int[10]; //声明并创建一个长度为10的整形数组arr

提醒:创建数组时数组长度必须指定,整形数组的默认值都为0。
4.数组的初始化:
声明数组的同时给数组赋值,叫数组的初始化。

int[] arr = {1,2,3,4,5}; //初始化数组,数组的长度就是初始化时数组元素都为个数

5.数组元素的引用:
语法格式:
数组名[下标];
提醒:下标从0开始数组元素的引用
6.数组长度:
属性length表示数组的长度。

int[] arr = {1,2,3,4,5};
System.out.println(arr.length);

7.增强型for循环(又叫foreach循环):

int[] arr = {1,2,3};
for(int n:arr)
	System.out.println(n); //打印输出数组

思考:如何对变量a,b的值进行交换?
我们可以:

int  a = 1,b = 3;
int temp;
temp = a;a = b;b = temp; //这样就交换了a,b的值

8.复制数组:
要点:要将一个数组复制到另一个数组中,需要将数组的每个元素复制到另一个数组中。
主意:在Java中,可以使赋值语句复制基本类型的变量,但不能复制数组。
复制数组的三种方法:

  • 使用循环语句逐个复制数组的元素
  • 使用System类中的静态方法arraycopy
  • 使用Clone方法复制数组
             src:源数组
             srcPos:源数组要复制的起始位置
             dest:目的数组
             destPos:目的数组放置的起始位置
             length:复制的长度
             主意:src和dest都必须是同类型或则可以进行转换类型的数组
import java.lang.System;
public class Array2 {
	public static void main(String args[]) {
		int arr[] = {1,3,5,6};
		//使用循环语句复制数组
		int arr1[] = new int[arr.length];
		for(int i = 0;i<arr.length;i++) {
			arr1[i] = arr[i];
			System.out.print(arr1[i]+" ");
		}
		
		System.out.println();
		
		//使用System类中的静态方法arrayCopy复制数组
		System.arraycopy(arr, 0, arr1, 0, 4);
		for(int arr2:arr1) {  //使用增强型语句打印数组
			System.out.print(arr2+" ");
		}
	}
}

一维数组的应用:

public class Array1 {
	public static void main(String args[]) {
		int[] arr1; //声明整形数组
		String arr2[]; //声明一个字符串类型的数组
		arr1 = new int[5];  //创建数组
		arr2 = new String[10];  //创建数组
		float[] arr3 = new float[3];  //声明并创建一个浮点类型的数组
		char[] ch = {'a','b','c','d'}; //声明并创建数组
		System.out.println("ch数组的长度为:"+ch.length);
		System.out.println("arr1数组的第2个元素为:"+arr1[1]);
		System.out.println("arr2数组的第5个元素为:"+arr2[4]);
		System.out.println("arr3数组的最后一个元素为"+arr3[arr3.length-1]);
		for(int i = 0;i<arr1.length;i++) {   //循环输出数组元素
			arr1[i] = i+1;
			System.out.print(arr1[i]+" ");
		}
	}
}

输出结果为:
在这里插入图片描述
记住:创建数组后,它的元素会被赋予默认值。数值基本数据类型的默认值是0,char型的默认值是‘\u0000’,字符串类型的默认值是null,boolean型的默认值是false。
求数组元素的累加和:

public class Summation {
	public static void main(String args[]) {
		int arr[] = new int[5]; //定义并创建数组
		Scanner sc = new Scanner(System.in); //从键盘接收数据,为元素赋值
		for(int i = 0;i<arr.length;i++) {
			System.out.println("请输入第"+(i+1)+"个元素");
			arr[i] = sc.nextInt();
		}
		System.out.println("数组元素为:");
		for(int i = 0;i<arr.length;i++)
		System.out.print(arr[i]+" ");
		int sum = 0;
		for(int i = 0;i<arr.length;i++) {
			sum+=arr[i];
		}
		System.out.println(); //换行
		System.out.println("数组元素的和为:"+sum);
	}
}

运行结果:
在这里插入图片描述
例子:

public class Array{
	public static void main(String args[]) {
		int[] arr1 = new int[6];
		for(int i = 0;i<arr1.length;i++) {
			arr1[i] = (int) (Math.random()*100); //使用随机数初始化数组
			System.out.print(arr1[i]+" ");
		}
		System.out.println();
		
		double arr2[] = {1.1,2.2,1.3,4.1};  //显示数组
		for(int i = 0;i<arr2.length;i++)
			System.out.print(arr2[i]+" ");
		System.out.println();
		for(double d:arr2) //使用foreach循环打印数组
			System.out.print(d+" ");
		System.out.println();
		
		int arr3[] = new int[5];//对元素求和
		int total = 0;
		for(int i = 0;i<arr3.length;i++) {
			arr3[i] = i;
			total+=arr3[i]; 
		}
		System.out.print(total+" ");
		System.out.println();
		
		int arr4[] = {3,1,5,2020,8,9}; //找出元素中的最大值
		int max = arr4[0];
		for(int i = 0;i<arr4.length;i++) {
			if(arr4[i]>max)
				max = arr4[i];
		}
		System.out.println(max);
	}

用数组编写一个程序,求出其数目的平均值并找出大于平均值的元素:

public class AnalyzeNumbers {
	public static void main(String args[]) {
		Scanner input = new Scanner(System.in);
		System.out.println("请输入数字的个数:");
		int n = input.nextInt();
		double [] numbers = new double[n];
		double sum = 0;
		System.out.println("请输入数字:");
		for(int i = 0;i<n;i++) {
			numbers[i] = input.nextDouble(); 
			sum +=numbers[i];
		}
		double average = sum/n;  //求平均值
		int count = 0;
		for(int i = 0;i<n;i++) {
			if(numbers[i]>average)
				count++; //求出平均值的个数
		}
		for(int I = 0;I<n;I++) {
			if(numbers[I]>average)
				System.out.println(+numbers[I]+" ");
		}
		System.out.println("其和为"+sum);
		System.out.println("平均值是"+average);
		System.out.println("该数组中大于平均值的个数有"+count+"个");
	}
}

二维数组:

二维数组的元素通过行和列的下标来访问。二维数组也是存放相同数据类型得数据,可以看成是一维数组的的组成。
1.语法:
数据类型[][] 数组名;或则 数据类型 数组名[][];
第三种语法方式不推荐。

public class Array2 {
	public static void main(String args[]) {
		//二维数组声明的三种方式
		int[][] arr1;  //声明int类型的二维数组
		float arr2[][];  //声明float类型的二维数组
		double [] arr3[];  //声明double类型的二维数组
		arr1 = new int[3][3]; //输出3行3列的int类型的数组
		arr1[1][2] = 9;
		System.out.println("arr1数组第2行第3列的元素为:"+arr1[1][2]);
		
		char[][] ch = new char[3][5];  //声明的同时并创建
		arr2 = new float[3][]; //创建二维数组时只指定行数时不会报错,但运行后有可能会出现空指针异常
	}
}

2.获取二维数组的长度:
我们通过一段代码来看

public class Array2 {
	public static void main(String args[]) {
		int[][] x = new int[3][4];
		System.out.print(x.length);
		System.out.print(x[0].length);
		System.out.print(x[1].length);
		System.out.print(x[2].length);
	}
}

输出结果是3444,可知二维数组是一个一维数组,它的每个元素是另一个一维数组。
3.不规则的二维数组:

		float arr[0] = new float[3];  //第一行有三列
		float ar1[1] = new float[4];  //第二行有四列
		float ar2[2] = new float[5];  //第三行有五列
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值