JAVA基础----数组

author:Floating clouds
date:2020-11-19
*

数组

数组理解

数组,什么是数组呢?
通俗的说,数组是将类型相同的数据有序的组织起来的一种方式;里面既可以存放基本数据类型的数据也可以存放引用类型数据。
每个数组都有一个名字,里面存放的每个数据叫做数组的元素;因为数组存放的数据(元素)是有序的,所以数组里每个元素都有对应的下标(也称索引(index)),这里注意,数组元素的索引不像自然数那样,它是从0开始的;数组的长度为length,计算length时只需要数组名点length就可以了;因为数组的索引(下标)是从零开始的,所以数组的最大索引(数组的最后一个元素下标)为length-1;数组可以分为一维数组和多维数组,下面就给大家介绍。

一维数组

一维数组简单来说就是只有一列的数组,也是最简单的数组。

一维数组的创建

创建方式有两种:

  1. 静态创建
  2. 动态创建
    如下代码:
package com.Array;
public class Test01 {
	public static void main(String[] args) {
		//静态创建一个整数类型数组
		int[] arr1 = {1,2,3,6,7,8,9};
		//或者
//		int arr1[] = {1,2,3,6,7,8,9};
		//动态创建一个整数类型数组
		int[] arr2 = new int[7];
		//或者
//		int arr2[] = new int[7];
	}
}

二维数组

二维数组比一维数组复杂,他是把一维数组作为他的元素;换句话说,二维数组的每个元素就是一个一维数组。

二维数组的创建

创建方式与一维数组创建一样有静态创建和动态创建,代码如下;

package com.Array;
public class Test02 {
	public static void main(String[] args) {
		//静态创建一个简单的二维数组
		int[][] arr1 = {{1,2},{1,3},{2,3}};
		//或者
//		int arr1[][] = {{1,2},{1,3},{2,3}};
		//动态创建一个简单的二维数组
		int[][] arr2 = new int[1][2];
		//或者
//		int arr2[][] = new int[1][2]
	}
}

因为二维数组是由多个一维数组组成,所以计算长度要稍微复杂一点,给大家写个例子:

package com.Array;
public class Test02 {
	public static void main(String[] args) {
		//静态创建一个简单的二维数组
		int[][] arr = {{1,2},{1,3},{2,3}};
		int len = 0;
		len = arr[0].length+arr[1].length+arr[2].length;
		System.out.println(len);
	}
}

当然,这是在知道数组元素个数的情况下,如果不知道的话要利用for循环如下:

package com.Array;
public class Test02 {
	public static void main(String[] args) {
		//静态创建一个简单的二维数组
		int[][] arr = {{1,2},{1,3},{2,3}};
		int len = 0;
		for(int i = 0;i<arr.length;i++) {
			len = len+arr[i].length;
		}
		System.out.println(len);
	}
}

多维数组

同上面一样,n维数组就是有多个(n-1)维数组组成,因为结构比较复杂,所以很少用于生活中;这里就给大家简单创建一个三维数组:

package com.Array;
public class Test03 {
	public static void main(String[] args) {
		// 简单静态创建一个三维数组
		int[][][] arr = {{{1,9,2},{3,2},{6,6}},{{1,2,7},{1,5},{3,5,0,6}},{{9,6},{4,4},{8,4}}};
		int len = 0;
		for(int i = 0;i<arr.length;i++) {
			int[][] arr1 = arr[i];//把三维数组中的各元素放于一个二维数组里
			for(int j =0;j<arr1.length;j++) {
				int[] arr2 = arr1[j];//把二维数组arr1的各元素放于一维数组arr2中
				len = len+arr2.length;
			}
		}
		System.out.println(len);
	}
}

是不是感觉非常复杂呢?所以说数组每多一维,复杂度会上增数倍。

示例

接下来给大家示例两个一维数组的基本应用吧!
示例1:

package com.Array;
/*
 * 简单数组逆置
 */
public class Test04 {
	public static void main(String[] args) {
		byte[] arr = {1,3,5,8,9};
		//思路:利用一个循环把数组的对称元素互相交换,因为是对称的,所以循环的次数为数组长度的一半
		int len = arr.length;
		for(int i = 0;i<len/2;i++) {
			byte temp = arr[i];//定义一个数,用来作为数组元素交换的中间变量
			arr[i] = arr[len-1-i];//把数组的第i个元素的对称元素赋值给数第i个元素
			arr[len-1-i] = temp;
		}
		//遍历逆置后的数组,看看是否逆置成功;这里用了个增强for循环
		for(int j:arr) {
			System.out.println(j);
		}
	}
}

示例2:

package com.Array;

import java.util.Random;
/*
 1. 随机取数,与随机点名系统等等相似
 */
public class Test05 {
	public static void main(String[] args) {
		int[] arr = {1,2,3,4,5,6,7,8,9};
		Random random = new Random(); //创建随机对象;关于什么是对象后续会讲到
		int nextInt = random.nextInt(arr.length);//生成一个随机数,范围为数组的索引
		int number = arr[nextInt];
		System.out.println(number);
	}
}

总结

关于数组,需要注意下面几点:
1.数组一旦创建成功,长度就不可改变;
2.数组是有序的;
3.内存分配:数组在创建成功后就会占用内存里的一片空间,在程序结束之前都不会释放,因此,即便后面改变了数组的元素,原来的空间也不会变,而是在原来的基础上,再次分配一个新的空间,用来存储改变后的数组;所以说数组一旦创建长度就不可更改。

结语

今天给大家分享了数组,希望对大家有用;如果有发现不对或者不完善的地方,欢迎留言指出,谢谢!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值