zoukankan      html  css  js  c++  java
  • 数组的示例

     示例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+" ");

    }

    //删除元素

    deleteElement(arr,index);

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

    for(int n:arr){

    System.out.println(n+" ")

    }

    /*删除数组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+" ");

    }

    }

  • 相关阅读:
    前端请求跨域理解
    可视化交互行为
    文章标题
    在map上标记point
    基于force布局的map
    stack布局
    python一些特有语法
    histogram布局用法
    patition布局
    Shell命令行处理JSON
  • 原文地址:https://www.cnblogs.com/javatask/p/6681925.html
Copyright © 2011-2022 走看看