一些java的小实例(持续更新)

一些java的小实例

1.随机生成1~100之间的随机数30个,求最大值?并确定该值是否重复?若存在重复,重复多少次?

Random rand = new Random();
        int [] arr = new int[30];
        for (int i = 0; i <arr.length ; i++) {
            arr[i] = rand.nextInt(100) + 1;
        }
        int max=arr[0];
        for (int i = 0; i <arr.length ; i++) {
            if(arr[i]>max){
                max=arr[i];
            }
        }
        for(int c :arr){
            System.out.print(c+"\t");
        }
        System.out.println("\n请输出最大值为"+max);

        int count = 0;
        for (int i = 0; i <arr.length ; i++) {
            if(max==arr[i])
            {
                count++;
            }
        }
        System.out.println(count>1?"有":"没有"+"重复");
        if(count>1){
            System.out.println("重复了"+(count-1)+"次");
        }

 运行结果如下:

2.找到数组{8,9,6,12,14,5,2}的中位数及输出其下标。

 int[] arr ={8,9,6,12,14,5,2};

        //控制台先输出这组数组
        for(int c:arr){
            System.out.print(c+"\t");
        }
        //初始化
        int begin=0,end=arr.length-1,mid=arr[0],t;
        //begin<end,先从右边开始和初始定义的中位数比大小。下标end的值>=初始定义的中位数,end--。
        while(begin<end) {
            if (arr[end] >= arr[0])
                end--;

            //否则就对比下标begin和初始定义的中位数的大小,如果下标begin<=初始定义的中位数,begin++。
            else {
                if (arr[begin] <= arr[0])
                    begin++;
                    else  {
                            t = arr[end];
                    arr[end] = arr[begin];
                    arr[begin] = t;
                }
                }

                //如果end找到第一个比初始设定的中位数小的和begin找到第一个比初始设定的中位数大的值时,两个数需要交换。
                // 以中间数t来作为交换体。一直重复上述比大小,数值交换的操作,直到begin和end相遇


            }


//如果相遇了,arr[begin]=arr[end],再对比和初始定义的中位数是否一致,不是的话则需要交换。
            if (begin != 0) {
                arr[0] = arr[begin];
                arr[begin] = mid;
            }
        System.out.println();
       for(int c:arr){
            System.out.print(c+"\t");
        }
        System.out.println("\n中位数为"+mid+"他的下标为"+begin);

运行结果如下:

3.输入两个日期(年月日),计算这两个日期之间相差多少天

    String firstTime = "2018-5-20";
    String secondTime = "2020-5-20";
    //将日期格式化成“yyyy-MM-dd”
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    //设置一个常量,精确到毫秒,因为下面获取时间是以毫秒为单位的,所以这边方便计算
    final long MS = 24*60*60*1000;
    long first = sdf.parse(firstTime).getTime();
    long second = sdf.parse(secondTime).getTime();
    long day = (second-first)/MS;
    System.out.print("相差"+day+"天");

运行结果如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值