目录
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。
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]
* */
}
}