点击打开数组知识总结
1.数组遍历
public class Array {
public static void main(String args[]){
//数组的遍历
int[] arr={1,2,3,5,6};
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]+", ");
}
}
}
运行结果:
2.输出数组中的最值
public class Array {
public static void main(String args[]){
//获取数组最值
int[] arr2={11,87,63,59,36,72};
int max=arr2[0];
for(int i=0;i<arr2.length;i++){
if(arr2[i]>max)
max=arr2[i];
}
System.out.println("arr2的max: "+max);
System.out.println("arr2的min: "+getMin(arr2))
}
/*方法改进
需求:获取元素最小值
两个明确:
返回值类型:int
参数列表:int[] arr
*/
public static int getMin(int[] arr){
int min=arr[0];
for(int i=0;i<arr2.length;i++){
if(arr[i]<min)
min=arr[i];
}
return min;
}
}
3.数组元素逆序排列
分析:
A:定义一个数组,并进行静态初始化
B:思路:
把0索引和arr.length-1的数据交换
把1索引和arr.length-2的数据交换
……
运行结果:只要做到arr.length/2的时候即可
public class Array { public static void main(String args[]){ //数组元素逆序 int[] arr3={11,22,33,55,66,77}; System.out.println("逆序前"); printArr(arr3); System.out.println("\n逆序后"); reverse(arr3); printArr(arr3); } //数组逆序方法: public static void reverse(int[] arr){ 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; } } public static void printArr(int[] arr){ 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]+", "); } } }
另法:改变方法体public static void reverse(int[] arr){ for(int start=0,end=arr.length-1;start<=end;start++,end--){ int flag=arr[start]; arr[start]=arr[end]; arr[end]=flag; } }
方法二:
改变方法体,第一个索引最后一个索引分别设为start和end,根据索引交换数组元素的值,每交换一次,start++,end--,直到start等于end为止
public static void reverse(int[] arr){
for(int start=0,end=arr.length-1;start<=end;start++,end--){
int flag=arr[start];
arr[start]=arr[end];
arr[end]=flag;
}
}
4.数组查表法
根据键盘录入索引,查找对应星期
运行结果:import java.util.Scanner; public class Array { public static void main(String args[]){ //数组查表法:根据键盘录入索引,查找对应星期 String[] strArr={"星期1","星期2","星期3","星期4","星期5","星期6","星期7"}; System.out.print("请输入一个索引(0~6):"); Scanner sc=new Scanner(System.in); int index=sc.nextInt(); System.out.println("你要查找的日期是:"+strArr[index]); } }
5.数组基本查找
数组元素查找(查找指定元素第一次在数组中出现的索引)
分析:定义一个数组,并静态初始化,遍历数组,依次获取数组中的每一个元素, 和已知的数据进行比较,如果想等,就返回当前索引值 ;如果要查找的元素在数组中不存在,则一般返回负数-1
运行结果:public class Array { public static void main(String args[]){ int[] searchArr={22,521,11,12,666,22}; System.out.println("2第一次在数组中出现的索引为:"+getArr(searchArr, 2)); System.out.println("22第一次在数组中出现的索引为:"+getArr(searchArr, 22)); } /* 需求:查找指定数值第一次在数组中出现的索引 两个明确: 返回值类型int; 参数列表:int[] arr,int value; */ public static int getArr(int[] arr,int value){ int index=-1; for(int i=0;i<arr.length;i++){ if(arr[i]==value) index=i; break; } return index; } }
方法二:
改变方法体:
public static int getArr(int[] arr,int value){ for(int i=0;i<arr.length;i++){ if(arr[i]==value) return i; } return -1; }