精华内容
下载资源
问答
  • 我们的主键生成机制是想用系统执行的当前时间点,所以用了System.currentTimeMillis的方法。以为用户在某一个毫秒时间点上不会有两个人同时操作。 今天做批量插入时,发现在一个循环里面,一毫秒是可以做完上述的...
    // 初始化数据
    List<Requirement> reqTemp = new ArrayList<Requirement>();
                for (Requirement req : reqList) {
                    req.setReqId(StrUtil.numberUUID());
                    req.setCreateDate(new Date());
                    req.setUpdateDate(new Date());
                    req.setIsSoftDel("1");

                    req.setReqLevel(getLevel(req.getReqLevel()));                 

                   req.setReqPerson(

    this.getUserId(req.getReqPerson()));
                    reqTemp.add(req);

                }


    // 生成随机数
        public static String numberUUID() {
      String numTemp = String.valueOf(System.currentTimeMillis());
            return numTemp;
        }


    该成静态资源后依旧不行:


    public String strUUID() {
            return String.valueOf(System.currentTimeMillis());
        }

    我们的主键生成机制是想用系统执行的当前时间点,所以用了System.currentTimeMillis的方法。以为用户在某一个毫秒时间点上不会有两个人同时操作。
    今天做批量插入时,发现在一个循环里面,一毫秒是可以做完上述的几步操作的,现在的计算机运算速度真的让人汗颜呀。

    后来还是不想放弃用时间点来做操作,查找jdk-1.6 api后发现还有一个System.nanoTime的方法,可以精确到纳秒。预先在控制台上运行发现还是会有重复,NND。看来只能用UUID.randomUUID了。

    所以告诫一下,各位开发同仁,如果用自我主键(程序控制),要力减主键作用域,缩小主键的使用范围。从而达到数据的唯一性。






    展开全文
  • java Serializable 生成随机序列

    千次阅读 2014-02-27 10:12:51
    如果你implements 了 Serializable接口 但是没写 UID,eclipse会在你的类名边上有一个警告,你点击一下,有一个选项自动生成 UID,所以请用eclipse写java代码
    如果你implements 了 Serializable接口 但是没写 UID,eclipse会在你的类名边上有一个警告,你点击一下,有一个选项自动生成 UID,所以请用eclipse写java代码
    
    展开全文
  • java语言编写的产生一个N位随机序列的代码
  • 有时候会需要将一个ArrayList或者数组中的数字打乱,方便后续使用,比如随机出题、答案选项打乱、连线题打乱、抽奖号码打乱等等,把我自己写的一段代码贴出来分享给大家。
  • 最近需要做个无重随机序列,无奈小弟不给力,在网上找了半天,找到一个还是效率不高,后来我提供了算法思路——完全剩余系,无奈小弟能力有限无法实现,最终还是得自己忙里抽空自己写了一个。后来发现效率还可以,...

    最近需要做个无重随机序列,无奈小弟不给力,在网上找了半天,找到一个还是效率不高,后来我提供了算法思路——完全剩余系,无奈小弟能力有限无法实现,最终还是得自己忙里抽空自己写了一个。后来发现效率还可以,特发出来请大家指点一下~

    package new2.com.other;
    
    import java.util.ArrayList;
    import java.util.Random;
    
    /**
     * 生成一个整型无重随机序列,无参构造使用数组序列生成,有参构造使用完全剩余系定理(效率高,包含生成质数序列)
     */
    public class UniqueRandom {
    	int maxValue;
    	ArrayList<Integer> prime_num = new ArrayList<Integer>();// 质数序列用于查找\判断质数用
    	Random rd = new Random();
    	boolean isPrimeModel = false;
    
    	UniqueRandom() {
    	}
    
    	UniqueRandom(int maxValue) {
    		this.maxValue = maxValue + 1;
    		createPrimeList();
    		isPrimeModel = true;
    		// for(Integer pm:prime_num)System.out.print(pm+",");
    	}
    
    	private int sqrt(int value) {
    		return (int) Math.ceil(Math.sqrt(new Integer(value).doubleValue()));
    	}
    
    	private void createPrimeList() {
    		prime_num.add(2);
    		prime_num.add(3);
    		if (maxValue < 5)
    			return;
    		for (int i = 5; i < maxValue; i = i + 2) {
    			int sqrt = sqrt(i);
    			boolean isPrime = true;
    			for (Integer pm : prime_num) {
    				if (!isPrime || pm > sqrt)
    					break;
    				isPrime = i % pm != 0;
    			}
    			if (isPrime)
    				prime_num.add(i);
    		}
    	}
    
    	private int primeNumWith(int size) {
    		while (true) {
    			int pn = prime_num.get(rd.nextInt(prime_num.size()));// 随机点2
    			if (pn < size && size % pn == 0)
    				continue;
    			return pn;
    		}
    	}
    
    	public int[] randomList(int count, int size) {
    		int[] result = new int[count];
    		if (isPrimeModel) {
    			if (size >= maxValue) {
    				System.out.println("size Out of range! The maxValue is:"
    						+ maxValue);
    				return null;
    			}
    			int rdn_prm_num_for_size = primeNumWith(size);
    			int initpos = (size == count) ? 0 : rd.nextInt(size - count);// 随机点1
    			for (int i = 0; i < count; i++)
    				result[i] = (int) ((initpos + i) * (long) rdn_prm_num_for_size % size);
    		} else {
    			return getRandomSequence2(size, count);
    		}
    		return result;
    	}
    
    	private int[] getRandomSequence2(int maxNum, int arrSize) {
    		int[] sequence = new int[maxNum];
    		for (int i = 0; i < maxNum; i++)
    			sequence[i] = i;
    		int[] output = new int[arrSize];
    		int end = maxNum - 1;
    		for (int i = 0; i < arrSize; i++) {
    			int num = rd.nextInt(end + 1);
    			output[i] = sequence[num];
    			sequence[num] = sequence[end];
    			end--;
    		}
    		return output;
    	}
    
    	
    	public static void main(String[] args) {
    		int rate = 1000;
    		int MAX = 1000 * rate;
    		int SIZE = 1000 * rate;
    		int NEED = 1000 * rate;
    		UniqueRandom ur = new UniqueRandom(MAX);
    		long start = System.nanoTime();
    		int[] result = ur.randomList(NEED, SIZE);
    		System.out.println(System.nanoTime() - start);
    		 for(int i:result)
    			 System.out.print(i+",");
    	}
    
    }
    

     

    其中整合了小弟在网上找的算法——利用数组,个人感觉还不错,特别一同整合进去了。

    个人的算法思路就是利用完全剩余系定理。其中生成小于N的质数序列比较费时,建议使用的时候预先初始化一下~质数序列其实用处就是为了做一个互质的数而已……O(∩_∩)O~

    个人算法方面其实挺弱的,还请各位大牛指点,再优化一下,多谢~~

     

    可以和之前的博客比较一下:http://lfl2011.iteye.com/blog/1523862

    原文:http://my.oschina.net/alvinte/blog/111225

     

    展开全文
  • 产生比M小的随机序列的线性同余生成器公式为:x[i+1]=A*x[i]%M如果M是素数,A的若干选择可以得到周期为M-1的随机序列,可以选择M=2^31-1=2 147 483 647,A=48 271。为了避免溢出,可以使用以下公式:x[i+1]=A*(x[i]%...

    产生比M小的随机序列的线性同余生成器公式为:x[i+1]=A*x[i]%M

    如果M是素数,A的若干选择可以得到周期为M-1的随机序列,可以选择M=2^31-1=2 147 483 647,A=48 271。

    为了避免溢出,可以使用以下公式:x[i+1]=A*(x[i]%Q)-R*[X[i]/Q]+Mδ(X[i])

    其中Q和R分别是M/A的商和余数,如果前两项相减结果是正的,δ(X[i])为0;如果结果是负的则δ(X[i])为1。


    展开全文
  • 构建一个Arduino硬件随机数生成器并从Java使用它
  • Android/Java随机序列

    千次阅读 2014-09-13 11:25:51
    当使用上类的静态方法getSequence(int)获取一个随即序列后,如:从1到5的随机序列({3,4,2,1,5}或{4,5,2,3,1}或{2,5,1,4,3}等等),只用再次调用该方法才会产生新的随机序列。然后静态方法getIndex(int...
  • 随机序列生成并排序 题目描述 随机生成N(N<=100)个数,然后按照从小到大的顺序输出. 输入 输入数据第一行是一个正整数N,在第二行生成N个整数. 输出 输出一行,从小到大输出这N个数,中间用空格隔开. 示例输入 5 1...
  • 我指的随机序列就是好像洗牌那样把一个序列打散 看看java的实现 public static int[] random_serial(int limit) { int[] result = new int[limit]; for (int i = 0; i ; i++) result[i] = i + 1;//这里可以...
  • java生成随机序列号

    2019-09-29 00:12:16
    1.java生成随机序列号 String deleteUuid = UUID.randomUUID().toString(); 引用Jar包 //java-uuid-generator-3.1.3.jar 转载于:https://www.cnblogs.com/tian830937/p/4431927.html
  • I defined natural for Infinite sequence (Stream) of Natural numbers with Java8 iterator.IntStream natural = IntStream.iterate(0, i -> i + 1);natural.limit(10).forEach(System.out::println);Now, I wa...
  • java生成随机验证码

    2015-10-08 22:08:14
    基本思想就是利用 Collections.shuffle()这个方法随机打乱list中内容的排序来生成随机验证码,当然出于需要可以更改随机打乱的序列内容来生成想要的随机码 public static String getCode(String username) {  ...
  • 随机生成序列

    2013-03-22 09:25:50
    随机生成序列码的java代码,可以指定字符格式和字符位数
  • Java生成随机不重复邀请码(数字+字母)
  • Java生成随机数字和字母组合10位数

    千次阅读 2019-06-26 16:41:24
    /** * java生成随机数字和字母组合10位数 * @param length[生成随机数的长度] * @return */ public static String getRandomNickname(int length) { ...
  • 给定输入N,生成从1开始的:1,2,3,4,......N 一组随机序列,序列中的数不能重复出现。 比如:N=5,合法的随机序列为{4,3,1,5,2} 、{3,1,4,2,5}……非法的序列有{5,4,1,2,1} 来源:《数据结构与算法分析-MAW著 第...
  • GUID是一个128位长的数字,一般用16进制表示。算法的核心思想是结合机器的网卡、当地时间、...UUID是1.5中新增的一个类,在java.util下,用它可以产生一个号称全球唯一的ID: package com.mytest; import java.ut
  • 首先随机挑出k员工分为k组,这样可以保证每一个组至少有一个员工; 然后将剩余的员工随机分到k组中。 那么这么简单的题目为啥还要提一下呢?这是一个公司的笔试题,给60分钟解答时间。但是真的当我动手的时候,才...
  • java随机生成随机数 Generating a series of random numbers is one of those common tasks that crop up from time to time. In Java, it can be achieved simply by using the java.util.Random class. 生成一...
  • Java对象的序列化与反序列化 深入理解JAVA序列化 如果你只知道实现 Serializable 接口的对象,可以序列化为本地文件。那你最好再阅读该篇文章,文章对序列化进行了更深一步的讨论。 引言 将Java对象序列化为二进制...
  • 随机序列及其应用

    2012-10-19 09:42:50
    随机序列及其应用,主要讲解的就是伪随机数的产生和应用。
  • 生成20位和22位不重复的随机序列

    千次阅读 2018-05-23 17:00:38
    序列只包含数字和大写字母,不包含小写字母序列生成:自定义标识位(1位)+随机位(3位)+UUID序列(16位)序列生成:自定义标识位(1位)+时间位(13位)+UUID序列(8位)22位随机序列public class KeyGreaterUtil { ...
  • 自己写的一个随机生成,通过置换加密后的密码学序列生成程序,技术有javajavaswing,界面的响应事件很清晰。
  • 1、生成的字符串每个位置都有可能是str中的一个字母或数字,需要导入的包是import java.util.Random;//length用户要求产生字符串的长度 public static String getRandomString(int length){ String str=...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 74,402
精华内容 29,760
关键字:

java生成随机序列

java 订阅