static Random random = new Random(); 
int sleep = random.nextInt(10)* 300;

解决方案 »

  1.   

    20万个^_^,用数据库存起来,把这设置为key,抛开异常就可以
      

  2.   

    http://dev.csdn.net/article/42/42080.shtm
      

  3.   

    /*
     * Created on 2004-12-3
     *
     * TODO To change the template for this generated file go to
     * Window - Preferences - Java - Code Style - Code Templates
     */
    package test;
    import java.util.HashSet;
    import java.util.Iterator;
    import java.util.Random;
    import java.util.Date;public class Duplicate {
    private final int intMax = 62;
    private char[] ch = new char[62];
    private long seed = (new Date()).getTime();

    public Duplicate(){
    for(int i = 0; i < 26; i++){
    ch[i] = (char)(65+i);
    ch[i+26] = (char)(97+i);
    }
    for( int i = 0; i < 10; i++){
    ch[52+i] = (char)(48+i);
    }

    }


    private String getRandId(int intLength){
    Random rd = new Random();
    rd.setSeed(++seed); StringBuffer sb = new StringBuffer();
    for ( int i = 0; i < intLength; i++){
    sb.append(ch[rd.nextInt(intMax)]);
    }

    return sb.toString();
    } public static void main(String[] args) {
    Duplicate dp = new Duplicate();

    // start 
    Date dateStart = new Date();
    System.out.println("start:" + dateStart);

    HashSet hs = new HashSet();

    while(hs.size() < 200000){
    String str = dp.getRandId(5);
    hs.add(str);
    }

    // end
    Date dateEnd = new Date();
    System.out.println("end:  " + dateEnd);


    Iterator i = hs.iterator();
    while(i.hasNext()){
    String str = i.next().toString();
    System.out.println(str);
    }

    }
    }
      

  4.   

    绝对高效,经测试只需要2秒:)start:Wed Dec 08 13:32:17 CST 2004
    end:  Wed Dec 08 13:32:19 CST 2004
      

  5.   

    晕,是9位的呀,
    String str = dp.getRandId(9);也只需要3秒
      

  6.   

    按照 icy_csdn() 的方法,得到的串有可能重复吧?