博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数组的示例
阅读量:4313 次
发布时间:2019-06-06

本文共 2711 字,大约阅读时间需要 9 分钟。

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

}

}

 

转载于:https://www.cnblogs.com/javatask/p/6681925.html

你可能感兴趣的文章
在eclipse上用tomcat部署项目404解决方案
查看>>
web.xml 配置中classpath: 与classpath*:的区别
查看>>
suse如何修改ssh端口为2222?
查看>>
详细理解“>/dev/null 2>&1”
查看>>
suse如何创建定时任务?
查看>>
suse搭建ftp服务器方法
查看>>
centos虚拟机设置共享文件夹并通过我的电脑访问[增加smbd端口修改]
查看>>
文件拷贝(IFileOperation::CopyItem)
查看>>
MapReduce的 Speculative Execution机制
查看>>
大数据学习之路------借助HDP SANDBOX开始学习
查看>>
Hadoop基础学习:基于Hortonworks HDP
查看>>
为什么linux安装程序 都要放到/usr/local目录下
查看>>
Hive安装前扫盲之Derby和Metastore
查看>>
永久修改PATH环境变量的几种办法
查看>>
大数据学习之HDP SANDBOX开始学习
查看>>
Hive Beeline使用
查看>>
Centos6安装图形界面(hdp不需要,hdp直接从github上下载数据即可)
查看>>
CentOS7 中把yum源更换成163源
查看>>
关于yum Error: Cannot retrieve repository metadata (repomd.xml) for repository:xxxxxx.
查看>>
2020-11-18
查看>>