强!真不愧是人类高质量男性!仅用三行代码就从一千个数字随机选出了一百个不同的数字!

25 篇文章 1 订阅
13 篇文章 1 订阅

人类高质量男性就该有人类高质量男性的样子!不仅仅应该能从外表看出来,更应该由内而外地表现出来,你比如说下面三行代码:

public class RandomNum {
    public static void main(String[] args) {
        int num[]=new int[100],allNum[]=new int[1000];//num存放最终得到的100个不同数字,allNum存放0~1000的1000个有序数字,(int)(Math.random()*(allNum.length-1)
        for (int i=0;i<allNum.length;i++) num[ ( (allNum[i]=i) <num.length) ? i : (num.length-1)] = Swap.num(num,allNum.length,0);
        for(int i=0;i<(num ).length;i++) System.out.printf((num[i] = allNum[num[i]]) + (num[i]<10?"  ":(num[i]<100)?" ":"") + (((i+1)%10==0 && i!=0 )?"\n":"  "));
}

简单明了,通俗易懂,学过java的一般都说好理解

写这三行代码的也没别的意思,就是意思意思一下。

  1. 先定义了两个int数组 ,一个长度100,另一个长度1000;
    1. 长度1000的数组存放1~1000的有序不重复数字;
    2. 长度100的是存放100个从长度1000里随机选出来的不同的数字;
  2. 可以看到:三行代码里面有两个for循环
    1. 第一个for循环是用来:
      1. 给长度1000的数组赋值,可以看到,这个for循环执行的次数是长度为1000的数组的长度,也就是说通过这个循环可以给这个长度1000的数组依次赋予有序的值;
      2. 给长度100的数组赋值,也就是给他赋一个初始无序的在1~100的随机值,但是此时为了防止数组越界,利用三元运算,当循环到100时开始停止往下赋值,此时及此后只对尾值进行随机变换。
    2. 第二个for循环是用来:
      1. 利用小数组的每一个的值作为大数组的坐标获取其值赋值给小数组对应的值;
      2. 输出100个从大数组中选出的不同且无序的数;

代码已打包:https://download.csdn.net/download/qq_44140450/20369236

运行效果:

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值