从数组中随机选出几个元素,并且不重复

忙碌的时候给你讲个笑话,送给努力奋斗的你们

程序员见到科比,非常崇拜,于是就有下面一段对话

程序员:“你为什么这么成功,能告诉我成功的秘诀是什么吗?”

科比:“你见过城市凌晨四点的样子吗?”

程序员:“嗯,这个时候我一般在写代码!”

科比:“。。。。。”
↓↓
↓↓
↓↓
正文

1.下面是一个数组存入并随机选出 N 个元素的 代码片

 //这是我项目中查出来的对象集合,你们想在数组中存什么,就换成什么
                List<SdiscOrder> sdiscOrderList = sdiscAdminService.queryOrderListByTime(startTime, endTime);
                //集合的大小
                 Integer countReward = sdiscAdminService.queryOrderNumberByTime(startTime, endTime);
                // 筛选随机数组大小(随机选出的数量,例如:5个)
                int k = 4;
                // 待筛选数组最大上标(我这里是集合的大小)
                int n = countReward;
                //创建数组
                int[] numbers = new int[n];
                //把取到的用户Id存到数组(我是把对象Id循环进数组中了)
                for (int i = 0; i < sdiscOrderList.size(); i++) {
                    numbers[i] = sdiscOrderList.get(i).getUserid();
                }
                int[] results = new int[k];
                //随机产生5个小数
                for (int i = 0; i < results.length; i++) {
                    // 取出一个随机数
                    int r = (int) (Math.random() * n);
                    results[i] = numbers[r];
                    // 排除已经取过的值
                    numbers[r] = numbers[n - 1];
                    n--;
                }
                Arrays.sort(results);
                //把随机选好的几个元素放在了results中了,循环对其操作
                for (int i : results) {
                    //操作就自己写咯!
                   
                }
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值