这篇文章主要是展示数组的使用,一维数组和二维数组的遍历,作为一个正在入门的新手,有不足的地方还希望能够指出。
数组
-
基本要素
标识符:数组的名称,用于区分不同的数组。
数组元素:向数组中存放的数据。
元素下标:对元素进行编号,从0开始,数组中的每个元素都 可以通过元素下标来访问。
元素类型:数组元素的数据类型。 -
数组长度固定不变,避免数组越界。
一维数组
-
定义
数组是一个变量,存储相同数据类型的一组数据。 -
使用数组四步走
- 声明数组----------int [ ]a;
- 分配空间----------a=new int[5];
- 赋值----------------a[0]=8;
- 处理数据----------a[0]=a[0]*10-----a[0]=80;
-
动态赋值:数据类型[ ]数组名=new 数据类型[大小];
-
赋值方法
- 边声明边赋值
数据类型[ ]数组名=new 数据类型[ ]{元素1,元素2,元素3};
或:数据类型[ ]数组名={元素1,元素2,元素3};
int [] arr = new int [] {79 , 89 , 99};
- 动态地从键盘录入信息并赋值
Scanner input = new Scanner(System.in);
for(int i = 0;i < 30;i++){
score[i]=input.nextInt();
}
-
给一维数组排序
使用Java.util.Arrays类
java.util包提供了许多工具类
Arrays类提供操作数据的方法如排序,查询
Arrays类的sort()方法:对数组进行升序排列
使用方法:Arrays.sort(数组名);
-
clone.复制数组
数据类型[ ]新数组名=(数据类型[ ])原数组名.clone();
int[ ]newRand = (int [ ])rand.clone();
将object类型强转为int[ ]类型,调用clone方法。
- 逆序:将数组从后往前进行排列
即:
new[0] = old[old.length-1];
new[1] = old[old.length-2];
new[2] = old[old.length-3];
... ...
new[old.length-1] = old[0];
实现数组的逆序
int[]scores = new int[]{22,33,44,55,66};
int[]newScores = new int[5];
//依次将后面的值赋给前面的
for(int i = 0;i < newScores.length;i++){
newScores[i] = scores[score.length-i-1];
}
//遍历数组
for(int i = 0;i < newScores.length;i++){
System.out.print(newScores[i] + "\t");
}
练习:猜数字游戏,判断输入的数字是否在随机数组中
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
//定义一个有五个内容的数组
int[]rand=new int[5];
//随机产生五个数在数组中
for(int i = 0;i<rand.length;i++){
rand[i]=(int)(Math.random()*100);
}
//可以选择先输出已经随机产生的数组,完成作弊;-)
/*for (int i = 0; i < rand.length; i++){
System.out.print(rand[i]+"\t");
}*/
System.out.println("请输入一个猜的数:");
int a=input.nextInt();
boolean doing=true;
for(int i = 0;i<rand.length;i++){
if (a==rand[i]){
System.out.println("\n"+a+"存在于这个数组");
doing=false;
}
}if(doing){
System.out.println("\n"+a+"不存在于这个数组");
}
for (int i = 0; i < rand.length; i++){
System.out.print(rand[i]+"\t");
}
}
}
一维数组的典型应用:实现数组的排序、求数组的最大/最小值、向数组中插入元素。
二维数组
- 定义
元素为一维数组的数组。
-
定义格式
A.数据类型[ ] [ ]数组名;(推荐使用)
B.数据类型[ ]数组名[ ];
C.数据类型 数组名[ ] [ ]; -
初始化
A.动态初始化
数据类型[ ] [ ]数组名=new 数据类型[m] [n];
m表示二维数组中的一维数组个数
n表示一维数组中的元素个数B.静态初始化
数据类型[ ] [ ]数组名=new 数据类型[ ] [ ]{{元素1,元素2…},{元素1,元素2…},{…},…};
简化格式:数据类型[ ] [ ]数组名={{元素1,元素2…},{元素1,元素2…},{…},…}; -
遍历二维数组中的数据
需要使用双重循环,遍历其中每个一维数组
public static void main(String[] args) {
int[][]arr={{1,2,3,4},{4,5,6},{7,8,9}};
for(int i = 0;i < arr.length;i++){
System.out.print("第"+(i+1)+"个一维数组:");
for(int j = 0;j < arr[i].length;j++){
System.out.print(arr[i][j]+" ");
}
System.out.println();
}
}