java生成随机数——六位随机数
来源:互联网 发布:智联招聘java 编辑:程序博客网 时间:2024/09/21 09:26
package com.nit.superlu.Junit;public class Test6 {public static void main(String[] args) {run(1);run(2);run(3);}/** * 方案一:逐位随机取值,转成字符串,然后再拼接成6位的字符串 * * @return 6位字符串 */public static String getRandNumber1() {StringBuffer numStr = new StringBuffer();int num;for (int i = 0; i < 6; i++) {// Math.random() 随机出0-1之间的实数,返回值是一个double 类型的num = (int) (Math.random() * 10);numStr.append(String.valueOf(num));}return numStr.toString();}/** * 方案二:随机出来的数乘上900000 得到一个0-900000的数,再加上100000就得到100000-1000000的六位数 * * 弊端:第一位为0的情况被排除 * * * @return 最多6位的整数 */public static int getRandNumber2() {int num = (int) (Math.random() * 900000) + 100000;return num;}/** * 方案三:将随机出来的数,直接转成字符串,然后截取小数点后六位。 * * 弊端:效率较低, * * 因为调用substring(int beginIndex, int endIndex) 时,它内部又需要调用String(value, * beginIndex, subLen) 构造器 * * String(value, beginIndex, subLen) 内部又要调用Arrays.copyOfRange(value, offset, * offset+count) 方法 * * Arrays.copyOfRange(value, offset, offset+count) 内部又调用了一个方法,这个方法的实现不是用java * 编写的,然后才返回结果 * * 一圈下来所以耗费时间 * * @return 六位的字符串 */public static String getRandNumber3() {String numStr;numStr = String.valueOf(Math.random());// subString(int begin,int end); 截取[begin,end)范围内的字符串return numStr.substring(2, 8);}/** * 测试一下每个函数运行的效率,循环个10万次 * * @param n * 指定哪个函数 */public static void run(int n) {long start = System.currentTimeMillis();for (int i = 0; i < 1000000; i++) {if (n == 1) {getRandNumber1();}if (n == 2) {getRandNumber2();}if (n == 3) {getRandNumber3();}}long end = System.currentTimeMillis();System.out.println(("getRandNumber" + n + ": ") + (end - start));}}
不知道方案二还能不能优化下
1 0
- java生成随机数——六位随机数
- 生成六位随机数
- java生成六位随机数,并且唯一。
- Java生成6位随机数
- java生成N位随机数
- 数学方法生成六位随机数
- java随机生成6位随机数 5位随机数 4位随机数
- java 生成若干位随机数的问题
- Java 生成N位随机数的方法
- groovy、java生成随机数32位
- 生成32位随机数
- 生成若干位随机数
- 生成18位随机数
- 生成20位随机数
- 生成多位随机数
- 生成6位随机数
- 生成若干位随机数
- Pyhon—生成随机数
- xfire client Retrying request
- jetty对于包的加载顺序的处理
- NSURLSession详解
- iOS开发之获取设备唯一标识的各种方法?IDFA、IDFV、UDID分别是什么含义?
- Android获取设备上全部应用名称及图片的示例
- java生成随机数——六位随机数
- IOS可以拖动的UIButton
- 设置php的环境变量
- 一致性hash算法
- java 多线程之wait、notify详解
- 方法模版模式(设计模式_11)【精品博客】
- ArrayList和Vector的扩容机制
- RESTful API 设计指南
- 对Android开发者有益的40条优化建议