> 文档中心 > 数组特别篇 - 常见的用法

数组特别篇 - 常见的用法

今天来讲一些数组的用法,通俗易解,话不多开干。

1.数组查询

package shuzu;import java.util.*;public class chazhao {public static void main(String[] args) {Scanner sc = new Scanner(System.in); //定义键盘数字类型输入System.out.println("请输入数字:");    //提示输入int mun = sc.nextInt();//开始输入int[] a = {1,3,8,9,5}; //定义int型数组5个元素boolean b = false;     //定义一个小开关for(int i=0;i<a.length;i++)   //开始进入循环{if(mun == a[i]){mun = i;   //把a数组下标赋值给mun。b = true;  //当条件成立时,打开if程序块开关break;     //退出for程序,运行下一个程序。}}if(b)  //符合条件进入。{System.out.print(mun+"   ");  //输出相应元素System.out.println(a[mun]);   //输出相应元素下标}}}

2.数组反转

package shuzu;public class 数组翻转 {public static void main(String[] args) {int[] a = {1,2,3,4,5};//先进行第一次数组反转,方案一:for(int i = 0;i<a.length/2;i++) //这里为何要除2呢?因为要把两边元素调换位置,只需调换该数组元素个数的一半就可以啦!{int tem = 0;  //定义一个临时变量,相当于临时仓库。tem = a[i];//例如循环第一次,把第一位元素给新的变量tem,所以tem=1。a[i] = a[a.length-1-i];//这里为何减1呢,因为元素下标是从0开始的而不是从1开始的,所以要比总数少一个啦!//接上一步,因为循环第一次,所以length-1-0=4,所以相当于把a[4]赋值给a[0]a[a.length-1-i] = tem;      //把tem变量的值赋值给a[4],这样就实现了1,5的调换。}for(int i = 0;i<a.length;i++)System.out.print(a[i] + " ");  //把调换的数值输出。System.out.println();//再进行第二次数组反转,方案二,上一个方案的改良。for(int i=0,j=a.length-1;i<a.length/2;i++,j--) //每循环一次,数组从最开始元素开始加一次,数组最后的元素开始减一次。{int tmp = 0;tmp = a[i];   //把a[i]赋值给tmp;a[i] = a[j];  //j=a.length-1,把a[i]的值赋给a[j].a[j] = tmp;  //把tmp变量赋值给a[j].}for(int i =0;i<a.length;i++)  //把调换的数值输出。System.out.print(a[i]+" ");}//输出结果5 4 3 2 1 1 2 3 4 5 }

3.数组排序

package shuzu;public class 排序 {public static void main(String[] args) {int[] a = {3,5,8,2,4,7,9,6,1,10};System.out.print("排序前数组:");for(int i = 0;i<a.length;i++)System.out.print(a[i]+" ");  //输出排序前的元素。System.out.println();//排序函数for(int i = 0;i<a.length-1;i++)    //length-1的意思是,因为元素下标是从0开始的而不是从1开始的,所以要比总数少一个啦!{for(int j = i+1;j<a.length;j++) //这里从i+1元素循环,因为要拿第二个元素与第一个元素进行比较。所以要比第一个元素多一个啦。{if(a[i]>a[j])   //把a[i]与a[j]元素进行比较。{//这一步就跟数组反转函数比较类似,把大元素与小元素调换一下位置,参考数组反转函数int tmp = 0;tmp = a[i];      a[i] = a[j];a[j] = tmp;}}}System.out.print("排序后数组:");for(int i = 0;i<a.length;i++)System.out.print(a[i]+" ");   //输出排序后元素。System.out.println();} 排序前数组:3 5 8 2 4 7 9 6 1 10  排序后数组:1 2 3 4 5 6 7 8 9 10 }

今天就先讲三种用法,后续还会更新。数组的用法会牵扯很多算法,所以掌握算法唯一的路径就是不断地实践,加油让我们一块冲吧