今天来讲一些数组的用法,通俗易解,话不多开干。
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
}
今天就先讲三种用法,后续还会更新。数组的用法会牵扯很多算法,所以掌握算法唯一的路径就是不断地实践,加油让我们一块冲吧