1.数组
保存相同类型
定义格式:
1、int[] arr = {11,22,33}; //再次赋值不能用
2、int[] arr = new int[]{11,22,33};
3、int[] arr = new int[3];
注意:数组必须提前定义数组长度
索引:编号。 从0开始
取值:数组名[索引]
赋值:数组名[索引] = 值
遍历: for 数组每个元素
方式一:
for(int i=0;i<arr.length;i++){
}
方式二:
for(int i=0;i<=arr.length-1;i++){
}
异常:
数组索引越界异常:
强制使用一个不存在的索引。
空指针异常:
数组为null,强制使用
2.数组强化练习
2.1数组求最值
需求:已知一个数组{33,22,11,55,44},
求数组所有元素的最大值和最小值。
展示效果:
分析:
//1、数组遍历
//2、遍历中:
//判断 最大值
//判断 最小值
代码实现:
//定义数组
int[] arr = {11,22,33,44,55};
//定义存储 最大值和最小 zhi值
int max=arr[0];
int min =arr[0];
for (int i = 0; i < arr.length; i++) {
判断 最大值 存储最大值
if (arr[i]>max){
max=arr[i];
}
判断 最小值 存储最小值
if (arr[i]<min){
min =arr[i];
}
}
System.err.println("最大值:"+ max);
System.err.println("最小值 :" +min);
}
效率:
3.普通查找(索引)
技术讲解:字符串相等比较
String str ="好厉害";
String s ="好";
//比较 equals 方法
// ture 字符串相同
// false 字符串不相同
System.err.println(str.equals(s));
System.err.println(str.equals("好厉害"));
System.err.println(str.equals("猴赛雷"));
效果:
2. 练习
需求:
已知数组{"周兴迟","刘一飞","赵本善","孙妍姿","王妃","陈怡迅"}.
如果有,请给出索引;
如果没有给出-1。
(提示:字符串比较是否相同,禁止使用==,必须使用equals方法)
展示效果:
分析:
//1、数组遍历
//2、遍历中:
//判断1:当前元素是否为“孙妍姿”
//判断2:当前元素是否为“汪菲”
代码实现
String []arr ={"周兴迟","刘一飞","赵本善","孙妍姿","王妃","陈怡迅"};
//请查找出数组中是否有孙妍姿、汪菲。
int w= -1;
int s = -1;
1、数组遍历
//2、遍历中:
//判断1:当前元素是否为“孙妍姿”
//判断2:当前元素是否为“汪菲”
for (int i = 0; i < arr.length; i++) {
//判断1 当前元素是否为“孙妍姿
if (arr[i].equals("孙妍姿")){
w= i;
}
//判断2:当前元素是否为“汪菲”
if (arr[i].equals("汪菲")){
s =i;
}
}
System.err.println("孙妍姿:"+w);
System.err.println("汪菲:"+s);
}
效果:
3.数组强化练习-主练
1.道题 (进阶-困难)
代码:
//倒序
//定义一个数组
int[] arr ={1,3,3,7,9};
//快捷键 arr.forr
for (int i = arr.length - 1; i >= 0; i--) {
System.err.println(arr[i]);
}
效果:
2.已知一个数组
{11,22,33,44,55,66}
要求,重新创建一个新数组,将上面数组反转保存起来
最终新数组的保存顺序为
{66,55,44,33,22,11}
int[] arr1 = {11,22,33,44,55,66};
代码:
//1、定义数组
//老数组
int[] oldArr = {11,22,33,44,55,66};
//新数组
int[] newArr = new int[oldArr.length];
//2、遍历老数组 (正序)
for(int i=0;i<oldArr.length;i++){
//3、遍历中:取出老数组元素,保存到新数组中
//新:长度-1-i 老:i
newArr[newArr.length-1-i] = oldArr[i];
}
//3、展示
System.err.println(Arrays.toString(newArr) );
效果:
2.元素反转
代码:
int[] arr= {11,22,33,44,55,66};
for (int i = 0; i < arr.length/2; i++) {
//定义一个第三方
int temp =arr[i];
arr[i]= arr[arr.length-1-i];
arr[arr.length-1-i]=temp;
}
System.err.println(Arrays.toString(arr));
}
效果:
目录
1.数组
2.数组强化练习
3.普通查找(索引)
3.数组强化练习-主练