gistfile1.txt package cn.dceast.ci.common.utils;import java.text.DecimalFormat;import java.util.HashSet;/** 编码生成工具类* @author wanggw* @version 2017-9-29* */public class CreateCodeUtils {// public static void main(String[] args)
package cn.dceast.ci.common.utils; import java.text.DecimalFormat; import java.util.HashSet; /* * 编码生成工具类 * @author wanggw * @version 2017-9-29 * */ public class CreateCodeUtils { // public static void main(String[] args){ // // DecimalFormat mFormat = new DecimalFormat("00000000"); // StringBuilder str=new StringBuilder(); // String productType="1";//产品类型第1位 // String registrationNo="123456";//农业登记证后6位,2-7位 // String productSpec="000";//产品规格占3位 // int number=1000000;//生成个数 // str.append(productType); // str.append(registrationNo); // str.append(productSpec); // str.append(System.currentTimeMillis()); // HashSetset=new HashSet (number); // Long start=System.currentTimeMillis(); // randomSetNew(str,number,number,set); // Long end=System.currentTimeMillis(); // System.out.println("一共花了 "+(end-start)); // for (String s:set){ // // System.out.println(s+" "+s.length()); // } // System.out.println("一共花了 "+(end-start)); // } /** * 生成8位随机数 * @param str * @param n * @param m * @param set */ public static void randomSetNew( StringBuilder str,int n,int m, HashSet set) { DecimalFormat mFormat = new DecimalFormat("00000000"); for (int i = 0; i < n; i++) { int num = (int) (Math.random() * 100000000); set.add(str.toString()+mFormat.format(num));// 将不同的数存入HashSet中 } int setSize = set.size(); // 如果存入的数小于指定生成的个数,则调用递归再生成剩余个数的随机数,如此循环,直到达到指定大小 if (setSize < m) { randomSetNew( str,n - setSize,m, set);// 递归 } } /** * 生成7位随机数 * @param str * @param n * @param m * @param set */ public static void randomSet( StringBuilder str,int n,int m, HashSet set) { DecimalFormat mFormat = new DecimalFormat("0000000"); for (int i = 0; i < n; i++) { int num = (int) (Math.random() * 10000000); set.add(str.toString()+mFormat.format(num));// 将不同的数存入HashSet中 } int setSize = set.size(); // 如果存入的数小于指定生成的个数,则调用递归再生成剩余个数的随机数,如此循环,直到达到指定大小 if (setSize < m) { randomSet( str,n - setSize,m, set);// 递归 } } }