码迷,mamicode.com
首页 > 编程语言 > 详细

java学习日记

时间:2017-08-23 19:57:58      阅读:202      评论:0      收藏:0      [点我收藏+]

标签:针对   存在   利用   java学习   highlight   util   工具包   重复   div   

1.随机数的生成

第一种方式:运用工具包java.lang.util.Random来生成

private static void suiji()
    {
        Random r=new Random();
        int ival;
        for(int i=0;i<10;i++)
        {
            ival=r.nextInt(50);
            System.out.println(ival);
        }
    }

代码的意思是:生成0-50随机数,存在重复的。

第二种方式:用math类下的

private static void suiji2()
    {
        double dval;
        long lval;
        int ival;
        for(int i=0;i<10;i++)
        {
            dval=Math.random()*100;
            //1.用math函数四舍五入
            //ival=Math.round(dval);
            //2.用类型强制转换,将double转换成int
            ival=(int)Math.round(dval);
            System.out.println(ival);
        }
    }

代码采用 math提供的方法random获取0-1之间浮点数。然后乘以多少 获取相应范围内数,比如100,则小数点右移两位,获取0-100之间的数,但是获取的是浮点数,带有小数,然后用四舍五入函数 round或者int强制类型转换获取整数,但也是含有重复的数。

第三种:则是利用UUID码的生成:

private static void suiji3()
    {
        for(int i=0;i<10;i++)
        {
            String uuid=UUID.randomUUID().toString();
            System.out.println(uuid);
        }
    }

代码生成永不重复uuid码。

我们现在针对前两个实现生成不重复的随机数。

 

private static void suiji4(int n,int m)
	{
		Integer arr[]=new Integer[n];
		Random r=new Random();
		
		int index=0;
		int ival;
		while(true)
		{
			boolean tag=false;
			ival=r.nextInt(m);
			for(int i=0;i<index;i++)
			{	
				if(arr[i] == ival)
				{
					tag=true;
					break;
				}
			}
			if(!tag)
			{
				arr[index++]=ival;
			}
			if(index == n)
			{
				break;
			}
		}
		Arrays.sort(arr);
		for(int a:arr)
		{
			System.out.println(a);	
		}
		
	}

  利用一个标记位 Boolean tag 来实现判断该数组是否含有刚生成的随机数,没有则添加进数组,有则从新生成,传递两个参数 ,打印n个m范围内的不重复随机数。

java学习日记

标签:针对   存在   利用   java学习   highlight   util   工具包   重复   div   

原文地址:http://www.cnblogs.com/doucunkai/p/java.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!