目录

1.数组

1.1 概念

1.2 数组的创建

 1.3数组创建过程

1.4 数组的长度

1.5 数组的变量

2.工具类

2.1 Arrays

1.Arrays.toString

2.Arrays.sort

3.Arrays.copyOf

2.2 Random



1.数组

1.1 概念

数组Array,标志是"[]",用于储存多个相同类型的数据的聚合,想要获取数组中的元素值,可以通过下标来获取。

数组下标是从“0”开始的,下标最大为数组长度-1。

Java中数组的下标的数据类型 java数组下标从几开始_开发语言

 int[] a 的长度为5,即里面有五个元素值,下标从"0"开始,下标[1]的元素值为"2".

1.2 数组的创建

数组的常见创建方式分为两种:

1.静态初始值

int[]a = {1,2,3};
int[]b = new int[]{1,2,3,4,5,6};
//创建数组长度且给数组赋值

2.动态初始值

int[]a = new int[5];//动态初始值,赋予数组长度,其中元素后续自行赋值.

 1.3数组创建过程

以:int[]a = new int[5],为例

        1.在内存中开辟连续的空间存放数据,长度为5

        2.给数据完成初始化过程,给每个元素赋予默认值,int的默认值为“0”。

        3.数组完成初始化会分配一个唯一的地址值。

        4.把唯一的地址值交给变量 a 去保存

1.4 数组的长度

数组的长度用length属性来表示,数组一旦创立,长度不可以改变,数组的长度允许为0。

1.5 数组的变量

遍历:从数组的开头到结尾,依次访问数组每个位置,获取每一个位置的元素。例如:

public class Test {

	public static void main(String[] args) {
		//随机创立一个长度为5的数组,打印数组
		int[]a =new int[5];
        //遍历数组,给数组上的每个元素赋值
		for (int i = 0; i < a.length; i++) {
            //使用Random()添加随机数,nextInt()表示随机数的范围值为[0,100)
			a[i]= new Random().nextInt(100);
		}
        //打印数组,除了char外可以直接打印数组外,其他类型直接打印都是数组的地址值,需要使用Arrays.toString()来打印数组内的元素值
		System.out.println(a);//[I@4c6e276e
		System.out.println(Arrays.toString(a));//[55, 72, 24, 27, 89]

	}
}

2.工具类

2.1 Arrays

1.Arrays.toString

把数组中的数据,用","链接成一个字符串[数据1,数据2,.......]

2.Arrays.sort

将数组中的数据进行排序,对于基本类型的数据使用的是优化后的快速排序算法,效率高

对引用类型的数据使用的是优化后的合并排列算法

3.Arrays.copyOf

把数组赋值成一个指定长度的新数组

新数组的长度如果大于原数组,复制原数组后再在后面增加长度

新数组的长度如果小于原数组,将截取一部分数据

Arrays.copyOfRange()用于截取指定的元素

2.2 Random

给数据随机赋值,而nextInt则限制了赋值的范围为[0,100)

public class Test {

	public static void main(String[] args) {
		//随机创立一个长度为5的数组,打印数组
		int[]a =new int[5];
		for (int i = 0; i < a.length; i++) {
			a[i]= new Random().nextInt(100);
		}
		System.out.println(Arrays.toString(a));//打印原数组的数据
		int[] b= Arrays.copyOf(a,10);//指定新长度,因为原数组长度为5,后续5个数据是增加的,并没有值(为默认值0)
		System.out.println(Arrays.toString(b));//打印新数组的数据
		int[] c=Arrays.copyOf(a,3);//指定新长度,小于原数组,截取前三个数据
		System.out.println(Arrays.toString(c));//打印数组c
		int[] d=Arrays.copyOfRange(a, 1, 4);//指定从哪里截取到哪里结束,保留首部数据,去掉尾部数据
		System.out.println(Arrays.toString(d));//打印数据d
		/**
		 *数组a:[89, 10, 86, 46, 75]
		 *数组b:[89, 10, 86, 46, 75, 0, 0, 0, 0, 0]
		 *数组c:[89, 10, 86]
		 *数组d:[10, 86, 46]
		 * */
	}
}