您的位置:首页 > 其它

随机生成固定位数的数字

2007-12-16 21:29 246 查看
public class MyRandom {
/**
* @param args
*/
public static void main(String[] args) {
// TODO 自动生成方法存根
System.out.println("" + MyRandom.getPK());
}

/**
* getPK,获得数据库使用的一个long型唯一主键 *位,同一微秒内3000个不会重复
*
* @return long
*/
private static long[] ls = new long[3000];

private static int li = 0;

public synchronized static long getPK() {
long lo = getpk();
for (int i = 0; i < 3000; i++) {
long lt = ls[i];
if (lt == lo) {
lo = getPK();
break;
}
}
ls[li] = lo;
li++;
if (li == 3000) {
li = 0;
}
return lo;
}

private static long getpk() {
String a = (String.valueOf(System.currentTimeMillis())).substring(3, 13);
String d = (String.valueOf(Math.random())).substring(2, 4);

return Long.parseLong(a + d);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: