• 数组的示例 二


    示例一

     定义一个长度为10 的一维字符串数组,在每一个元素存放一个单词;然后运行时从命令行输入一个单词,程序判断数组是否包含有这个单词,包含这个单词就打印出“Yes”,不包含就打印出“No”。

    public class Test{

    public static void main(String []args){

    String []arr ={"java","html","sql","androld","javascript","ruby","c","ruly",“net”,"ios"};//定义一个数组并赋值

    Scanner input =new Scanner(System.in);//获取用户输入

    System.out.println("请输入要查找的语言");

    String scanner=input.next();

    boolean flag =false;//判断是否输入对应

    for(Sting string:scanner){//for增强循环

    if(string.equals(scanner)){//比较数组中是否有用户输入

    flag=true;

    }

    }

    if(flag){

    System.out.println("YES");

    }else{

    System.out.println("NO");

    }

    }

    }

    示例2

    利用JavaMath类的random()方法,编写函数得到0n之间的随机数,n是参数。
    提示: int num=(int)(n*Math.random());
    并找出产生50个这样的随机数中最大的、最小的数,并统计其中大于等于60的有多少个。

    public class Test{

    public static void maxin(String[] args){

    //创建一个长度为50的数组,每个元素在0~100之间

    int []arr=getArray(100);

    //遍历数组

    Arr(arr);

    //获取最大值最小值

    int max=getMax(arr);

    int min=getMin(arr);

    System.out.println("最大值"+max+"最小值"+min);

    int count=count(arr,60);

    System.out.println("大于等于60的个数"+count);

    }

    //遍历数组

    public static void Arr(int [] arr){

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

    if(i%10==0){//十个数为一行

    System.out.println();

    }

    System.out.println(arr[i]+" ");

    }

    }

    //获取数组中最大值

    public static int getMax(int[]arr){

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

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

    if(max<arr[i]){.//如果当前元素比最大元素还大

    max=arr[i];//把当前元素赋值给max

    }

    }

    return max;//输出max

    }

    //获取数组中最小值

    public static int getMin(int[] arr){

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

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

    if(min>arr[i]){//如果当前元素比min还小

    min=arr[i];//把当前元素赋给min

    }

    }

    return min;

    }

    //创建数组 并且初始化50个值

    public static int [] getArray(int n){

    ing []arr=new int[50];//创建数组 并且开辟50个空间

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

    arr[i]=(int)(Math.random());//获得50个随机数 int 类型

    }

    return arr;

    }

    //统计数组中大于等于60的数量

    public static int count(int [] arr,int elem){

    int count=0;

    for(int i:arr){

    if(i>=elem){

    count++;

    }

    }

    return count;

    }

    }

    示例3

    数组逆序操作:定义长度为10的数组,将数组元素对调,并输出对调前后的结果。

    public class Test{

    public static void main(String [] args){

    int[] arr={21,36,35,14,35,25,16};//定义一个数组并进行静态初始化

    //逆序前

    System.out.println("逆序前");

    printArr(arr);

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

    reverseArr(arr);

    printArr(arr);

    }

    public static void reversrArr(int[] arr){

    for(int x=0;x<arr.length/2;x++){//二分查询

    int temp=arr[x];

    arr[x]=arr[arr.length-1-x];

    arr[arr.length-1-x]=temp;

    }

    }

    //遍历数组

    public static void printArr(int[] arr){

    System.out.print("[");

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

    if(i==arr.length-1){

    System.out.println(arr[i]+"]");

    }else {

    System.out.println(arr[i]+",");

    }

    }

    }

    }

    示例4

    现在有如下的一个数组:   int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5}   要求将以上数组中值为0的项去掉,将不为0的值存入一个新的数组,生成的新数组为: int newArr [] ={1,3,4,5,6,6,5,4,7,6,7,5}  

    思路: 确定出不为0的个数,这样可以开辟新数组;从旧的数组之中,取出内容,并将其赋给新开辟的数组。

    public class Test{

    public static void main(String[]args){

    int oldArr[]={1,3,5,0,0,6,6,0,5,4,7,6,7,0,5};

    int newArr[]=selectArr(oldArr);

    for(int i:newArr){

    System.out.println(i+"");

    }

    }

    //去掉数组中值为0的元素方法

    public static int[] selsectArr(int[] arr){

    //计算数组中元素不为0的个数

    int count=0;

    for(int i:arr){

    if(i!=0){

    count++;

    }

    }

    //创建一个新数组,长度为count

    int newArr[]=new int[count];

    int size=0;

    for(int i:arr){

    if(i!=0){

    newArr[size++]=i;

    }

    }

    return newArr;

    }

    }

    示例5

    使用二分法查找有序数组中元素。找到返回索引,不存在输出-1

    public class Test{

    public static void main(String[] args){

    int [] array={1,2,3,4,5,6,7,8,9,10};

    System.out.println(array,9);

    }

    /**

     * 循环二分查找,返回第一次出现该值的位置 

     * @param array 已排序的数组

     * @param findValue   需要找的值

     * @return 值在数组中的位置,从0开始。找不到返回-1

     */

    public static int sear(int[] array,int Value){

    // 如果数组为空,直接返回-1,即查找失败

    if(array=null){

    return -1;

    }

    //起始位置

    int start=0;

    //结束为止

    int end =arrar.length-1;

    while(start<=end){

    //中间位置

    int middle=(start+end)/2;

    //中值

    int middleValue=array[middle];

    if(Value==middleValue){

    //等于中值直接返回

    return middle;

    }else if(Value<middleValue){

    //小于中值在中值前面找

    end=middle-1;

    }else{

    //大于中值在中值后面找

    start=middle+1;

    }

    }

    return -1;//查找失败

    }

    }

    示例6

    用二重循环求出二维数组b所有元素的和:

    int[][]b={{11},{21,22},{31,32,33}};

    public static void main(String [] args){

    int sum=0;

    int[][]b={{11},{21,22},{31,32,33}};

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

    for(int j=0;j<b[i].length;j++){

    sum+=b[i][j];

    }

    }

    System.out.println(sum);

    }

    示例7

    生成一百个随机数,放入数组,然后排序输出。

    public class Test{

    public static void main(String[]args){

    //生成100随机数

    int []arr=createArr();

    //从小到大排序

    arr=sortArr[arr];

    //打印

    prinArr(arr);

    }

    //生成100随机数

    public static int[] caeateArr(){

    int [] arr=new int[100];

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

    arr[i]=(int)(Math.pandom());

    }

    return arr;

    }

    //对数组进行排序的方法

    publc static int [] sortArr(int[] arr){

    int temp;

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

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

    if(arr[i]<arr[j]){

    temp=arr[i];

    arr[i]=arr[j];

    arr[j]=temp

    }

    }

    }

    return arr;

    }

    //遍历数组打印

    public static void prinArr(int[]arr){

    for(int i:arr){

    System.out.println(i);

    }

    }

    }

    示例8

     题目:输入某年某月某日,判断这一天是这一年的第几天?

    分析:以35日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。可以定义数组存储1-12月各个月的天数。

    public class Test{

    public static void main(String []args){

    Scanner scanner =new Scanner(System.in);

    System.out.print("第几年");

    int year=scanner.nextInt();

    System.out.print("第几月");

    int month=scanner.nextInt();

    System.out.print("第几日");

    int dat=scanner.nextInt();

    int daynum=0;//天数

    //一年365天

    int[] month1=new int[]{31,28,31,30,31,30,31,31,30,31,30,31};

    //366闰年

    if(year%400==0&&year%100!0&&year%4==0){

    month1=new nt[]{31,2931,30,31,30,31,31,30,31,30,31};

    }

    //判断这一天是第几天

    for(int index=1;index<=month;index++){

    if(index==1){

    daynum=day;

    }else(

    daynum+=month1[index-2];

    }

    }

    System.out.println("这一天是这一年"+daynum+"天");

    }

    }

  • 相关阅读:
    javascript 中加载图片大小与图片真是大小不一样解决方案
    连接数据库类
    jquery中“this”不同时刻的不同含义
    jquery中bind事件
    Sql中Output参数用法和分页存储过程
    C#中静态方法和静态变量的使用问题
    asp.net中javascript中json和C#对象之间的转换
    asp.net中加载自用户定义控件
    瀑布流布局——JS+绝对定位
    【笔记】——Javascript(1)
  • 原文地址:https://www.cnblogs.com/javatask/p/6685021.html
Copyright © 2020-2023  润新知