数组不管在任何一门语言中都有重要的位置,必会。
第一部分,语法。
<li>定义一个数组:int[] array = new int[]; 或者 int[] array = new int[]{ 1,2,3,4,5 };
<li>赋值:int[] array = new int[]{ 1,2,3,4,5 };
<li>常用属性:
length:数组的长度。array.length, 返回值为int类型
第二部分,常用操作。
先创建一个空的数组
int array[] = new int[10];
<li>1. 用 fill(数组名,要填充的内容)方法 填充数组
// 1.用某一个数填充数组的所有元素(int为例)
int array[] = new int[10];
Arrays.fill(array, 7);
for (int a : array) {
System.out.print(a + "\t");
}
System.out.println();
fill()还有另一个重载形态,Arrays.fill(数组名, 起始索引, 结束索引, 要填充的值);
// 2.用某一个值填充某一个范围内的所有元素(int类型为例)
// 这里要说明一下,第二个参数代表起始索引(包括这个索引的元素),第三个参数代表截止索引(不包含截止索引的元素)
// 比如说Arrays.fill(array, 0, 4, 3);那么被操作的元素就是array数组中的第1,2,3,4个元素(因为不包括截止索引的元素)
Arrays.fill(array, 0, 4, 9);
for (int i : array) {
System.out.print(i + "\t");
}
System.out.println();
// 常见错误,数组越界。
// 那么什么是数组越界呢,就是当索引大于数组最大索引时就会发生越界,程序会报ArrayIndexOutOfBoundsException异常
<li>2.对数组进行排序(升序排列)
Arrays.sort(array);
for (int i : array) {
System.out.print(i + "\t");
}
System.out.println();
// 排序的时候要注意,在Java语言中,String类型数组的排序算法是根据字典编排顺序排序的
// 因此,数字排在字母前面,大写字母排在小写字母前面
<li>3.复制数组
// Arrays类的copyOf()方法 和 copyOfRange()方法
// copyOf(arr, int newlength)方法:arr代表数组名称,newlength代表新数组的长度
int[] array2 = Arrays.copyOf(array, 13);
for (int i : array2) {
System.out.print(i + "\t");
}
System.out.println();
int[] array3 = Arrays.copyOf(array, 5);
for (int i : array3) {
System.out.print(i + "\t");
}
System.out.println();
// 写到这里可以发现,当新复制的数组的长度大于被复制的数组时,多出来的位置用0填充
// 当新复制的数组的长度小于被复制的数组时,只复制从0到指定长度
// 5.复制给定范围的数组
// 这种模式更常用,必会
// Arrays.copyOfRange(数组名, 起始索引, 结束索引),和之前一样,结束索引位置的元素不被复制
// 方法返回的一个新数组
int[] array4 = Arrays.copyOfRange(array, 3, 5);
for (int i : array4) {
System.out.print(i + "\t");
}
System.out.println();