数组的示例

 示例1:在数组中查找指定元素的出现的第一次的位置,
    如果该数组中存在要查找的元素,则返回其下标;否则返回-1

import java.util.Scanner;

public class TestArrays{

    int index=-1;//定义数组下标位置

    int []arr={12,15,65,37,49,51};//定义一个数组并赋值

    Scanner input =new Scanner(System.in);

    int scanner =input.nextInt();//获取用户输入

    for(int d:arr){

        if(d==scanner){

        d=index;

        break;

    }

  }

  if(index!=-1){

System.out.println("你要找的数组下标位置是:"+index);

}else{

System.out.println("不存在");

}

}

 

示例2:

 查询数组中的最大值和最小值,并输入其下标位置
   实现思路:
   假设第一个元素是最大的,将其后的元素挨个与max进行比较,如果当前元素大于max,当前元素就是最大的
   假设第一个元素是最小的,将其后的元素挨个与min进行比较,如果当前元素小于min,当前元素就是最小的

int []arr={21,62,48,98,88,51};//定义一个数组并赋值

int max =arr[0];//假设第一个元素为最大值

int min=arr[0];//假设第一个元素为最小值

int max_index;//记录最大值坐标

int min_index;//记录最小值坐标

for(int i=0;i<arr.length;i++){

  if(max<arr[i]){//获取最大值  第一个元素比最大的还大

  max=arr[i];//将最大值赋值给max

  max_index=i;

  }

  if(min>arr[i]){

  min=arr[i]

  min_index=i;

  }

}

System.out.println("数组中元素的最大值为:"+max+",下标为:"+max_index);
System.out.println("数组中元素的最小值为:"+min+",下标为:"+min_index);

 

示例3:生成一个4位有字母或数字组成的随机字符串作为验证码

char[] codes=new char[60];//用于保存A~Z,a~z,0~9的字符

//A(65)~Z(90)字符对应的ASCII码值

for(int i=65;i<=90;i++){

char c=(char)i;

codes[i-65]=c;将A~Z的字符保持到数组下标0~26的位置

}

//a(97)~z(122)字符对应的ASCII码值

for(int i=97;i<=122;i++){

char c=(char)i;

codes[i-71]=c;//将A~Z的字符保持到数组下标26~51位置

}

//0(48)~9(57)字符对应的ASCII码值

for(int i=48;i<=57;i++){

char c=(char)i;

code[i+48]=c;//将0~9字符保持到数组下标52~65位置

}

//随机产生4个下标[0~62]

for(int i=0;i<4;i++){

int index =(int}(Math.random()*62);//产生[0~62]的随机数

str+=codes[index];//将字符拼接到str中

}

System.out.println("验证码为:"+str);

 

 

示例4

 在数组中删除元素:
   通过下标删除:将指定下标的元素从数组中移除
   思路:
   下标为i以后的元素向前平移一个位置,将最后的元素清零
   nums[i]=nums[i+1];
   nums[nums.length-1]=0
   问题:删除数组中元素效率较低(需要将数组中的元素大量进行平移)

 

int []arr={10,20,30,40,50,60};/定义数组并赋值

System.out.println("请输入你要移除的下标(0~5)");

Scanner input =new Scanner(System.in);

int index =input.nextInt();

System.out.println("删除前:");

for(int num:arr){

System.out.println(n+"\t");

}

//删除元素

deleteElement(arr,index);

System.out.println("删除后");

for(int n:arr){

System.out.println(n+"\t")

}

/*删除数组arr中指定下标的元素*/

public static void deleteElement(int[] arr,int index){

if(index>=0&&index<=5){

for(int i=index;i<arr.length-1;i++0){

arr[i]=arr[i+1];//将下标为i元素后的元素进行平移

}

arr[arr.length-1]=0;//将最后一个元素进行清零

}else{

System.out.println("输入有误");

}

 

}

 

示例5:冒泡排序:
  N个数字的来排队,两两比较小靠前
  外层循环(控制比较的轮数)N-1,内层循环(每轮需要比较的次数)N-1-i;

 

public static void  main(String[] args){

int []arr={1,9,8,5,4,6,2,};

//控制比较的轮数:每轮比较之后可以确定一个最大的

for(int i=0;i<6;i++){

//控制每轮需要比较的次数

for(int j=0;j<6-i;j++){

if(arr[j]>arr[j+1]){

//交换位置

int temp=arr[j];

arr[j]=arr[j+1];

arr[j+1]=temp;

}

}

}

System.out.println("排序后");

for(int a:arr){

System.out.println(a+"\t");

}

}

 

posted @ 2017-04-08 15:14  代鱼  阅读(184)  评论(0编辑  收藏  举报