一、定义:
1.定义数组格式:
(1)动态初始化:只定义数组存储数据类型和长度,不定义数组具体数据。
数据类型[ ] 数组名 = new 数据类型[长度]
数据类型 数组名[ ] = new 数据类型[长度]
(2)静态初始化:直接给出数据。
数据类型[ ] 数组名 = {元素1,元素2,元素3,......}
二、操作:
1.获取数组长度:
(1)格式:数组名.length(注意:length不是方法,后面不加小括号)
2.索引:
(1)定义:元素在数组中的位置(编号、下标)。
3.存储元素:
(1)格式:数组名[索引值] = 值
(2)手动添加数据:可使用Scanna套用循环添加;
自动随机添加数据:可使用Random套用循环添加;
注意:循环中可使条件小于数组长度array.length
3.获取元素:
(1)格式:数组名[索引]
4.遍历数组:
(1)for循环遍历,快捷键:数组名.fori
(2)数组操作常见问题:
a.数组索引越界异常_ArrayIndexOutOfBoundsException
b.空指针异常_NullPinterException
当一个对象为null时,再调用这个对象中的其他成员。
三、数组相关练习:
1.随机产生10个【0,100】之间的整数,统计既是3的倍数又是5的倍数,但不是7的倍数的个数:
java
Random rdm = new Random();
int[] arr = new int[10];
for (int i = 0; i < arr.length; i++) {
arr[i] = rdm.nextInt(101);
}
int count = 0;
for (int i = 0; i < arr.length; i++) {
if (arr[i]%3==0&&arr[i]%5==0&&arr[i]%7!=0){
count++;
}
System.out.print(arr[i]+",");
}
System.out.println(count);
2.定义一个数组{1,2,3,4},以【1,2,3,4】的形式输出:
java
int[] arr = {1,2,3,4};
System.out.print("[");
for (int i = 0; i < arr.length; i++) {
if (i == arr.length-1) {
System.out.print(arr[i] + "]");
}else {
System.out.print(arr[i]+",");
}
}
3.键盘录入一个数据,给出这个数据在数组中的索引位置:
java
Scanner sc = new Scanner(System.in);
int[] arr = {1,5,9,8,6,4,2,3,0};
int i = sc.nextInt();
int flag = 0;
for (int j = 0; j < arr.length; j++) {
if (i == arr[j]){
System.out.println(j);
flag++;
}
}
if (flag == 0){
System.out.println(-1);
}
4.数组复制:
java
int[] arr1 = {1,2,3,5,8,9};
int[] arr2 = new int[6];
int j = 0;
for (int i = 0; i < arr1.length; i++) {
if (i==j) {
arr2[j] = arr1[i];
j++;
}
}
System.out.print("[");
for (int k = 0; k < arr2.length; k++) {
if (k == arr2.length-1){
System.out.print(arr2[k]+"]");
}else {
System.out.print(arr2[k]+",");
}
}
5.数组扩容,将数组{1,2,3,4,5}长度扩容到10:
java
int[] OldArr = {1,2,3,4,5};
int[] NewArr = new int[10];
for (int i = 0; i < OldArr.length; i++) {
NewArr[i] = OldArr[i];
}
OldArr = NewArr;
System.out.println(OldArr.length);
for (int i = 0; i < OldArr.length; i++) {
System.out.print(OldArr[i]+",");
}
6.数组合并,将arr1{1,2,3}和arr2{4,5,6}合并成一个新数组:
java
int[] arr1 = {1,2,3};
int[] arr2 = {4,5,6};
int[] NewArr = new int[arr1.length + arr2.length];
for (int i = 0; i < arr1.length; i++) {
NewArr[i] = arr1[i];
}
int len = arr1.length;
for (int i = 0; i < arr2.length; i++) {
/*已经将arr1数值插入到NewArr中,所以arr2要从arr1最后一个索引位置的后一位开始*/
NewArr[len+i] = arr2[i];
}
for (int i = 0; i < NewArr.length; i++) {
System.out.print(NewArr[i]+",");
}