java random.nextInt的坑

java random.nextInt的坑下面的代码Randomrandom=newRandom();Integercode=random.nextInt(len);很简单的两句代码,需要注意两点:第一:nextInt的取值是[0,n),不包括n。如果是随机list,直接传list的size,不用担心下标越界。api说明:Returnsapseudorandom,uniformly

大家好,又见面了,我是你们的朋友全栈君。

下面的代码

       Random random = new Random();
        Integer code = random.nextInt(len);

很简单的两句代码,需要注意两点:
第一:nextInt的取值是[0,n) ,不包括n。如果是随机list,直接传list的size,不用担心下标越界。 api说明:

Returns a pseudorandom, uniformly distributed int value between 0 (inclusive) and the specified value (exclusive)

第二个:nextInt在数据量小的时候,重复概率比较高。比如现在有一个大小为6的list,我希望随机显示4条且不重复。正确的做法是每次得到随机数后,移除下标对于的对象。这样即使random重复了也没关系,因为下标对应数据移除后,同样的下标对应的对象是不一样的。
千万别像我之前的做法,遍历list,然后随机取到下标后,再去重。这样有时能得到4个,有时得不到。比如下标会出现 5,1,1,1,2,1.这样的话,最终list只会有三个。


之前一直没有怀疑是这段代码的问题,怀疑接口不稳定或者是数据不完整之类的。查日志还一直在看接口传递参数和返回参数,结果是因为对nextInt理解不深刻,在我印象中感觉randomInt是随机数且不重复的,不过事实证明我想多了。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/162896.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 用JIRA、CVS、XPlanner、WIKI来进行项目管理

    用JIRA、CVS、XPlanner、WIKI来进行项目管理

    2021年5月7日
    123
  • sql server 日期转字符串_db2 日期转字符串

    sql server 日期转字符串_db2 日期转字符串Whileworkingwithrawdata,youmayfrequentlyfacedatevaluesstoredastext.Convertingthesevaluestoadatedatatypeisveryimportantsincedatesmaybemorevaluableduringanalysis.In…

    2022年10月8日
    3
  • 用混淆矩阵计算kappa系数「建议收藏」

    用混淆矩阵计算kappa系数「建议收藏」从一篇论文——融合注意力机制和高效网络的糖尿病视网膜病变识别与分类,看到人家除了特异性、敏感性、准确率、混淆矩阵以外,还用了加权kappa系数,所以了解一下kapp系数的知识,加权kappa还没找到更好的资料。。。资料来源于百度百科词条——kappa系数Kappa系数用于一致性检验,也可以用于衡量分类精度,但kappa系数的计算是基于混淆矩阵的.kappa系数是一种衡量分类精度的指标。它是通过把所有地表真实分类中的像元总数(N)乘以混淆矩阵对角线(Xkk)的和,再减去某一类地表真实像元总数与该类中被

    2022年6月28日
    33
  • HandlerThread详解「建议收藏」

    HandlerThread详解「建议收藏」转载请注明链接:HandlerThread版本:2018/9/9-1(10:10)HandlerThread问题汇总基本使用(7)源码(7)问题汇总【☆】是补充问题,直接给答案。其余问题答案都在文中。HandlerThread是什么?【☆】HandlerThread任务是并行处理的?不是!是串行处理的。如果一个任务执行…

    2022年7月12日
    18
  • 如何生成Android的keystore文件

    如何生成Android的keystore文件

    2021年10月1日
    52
  • 一元线性回归-最小二乘法推导过程

    一元线性回归-最小二乘法推导过程设一元线性回归方程为,数据样本点为,要想使这n个样本点落在一元线性回归方程附近,不妨设误差为,使得没一个样本点落在一元线性回归方程上,因此有恒成立,所以回归直线应满足的条件是:实际值与回归估计值之间的误差平方和最小,即:此时令,原问题就转换成求解二元函数极小值问题,分别对求偏导:令上两式等于零,即最终求出两个数值,一元线性回归方程也就拟合出来了。…

    2022年5月17日
    63

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号