我正在尝试为 DS 中的每个请求生成一个唯一的 ID。我正在考虑连接一个随机整数和请求接收的时间戳。因为,获得一个随机整数可能会导致负值,所以我决定打印十六进制表示:
String randomPrefix = Integer.toHexString(RANDOM.nextInt()).toUpperCase();
java.util.Date date = new java.util.Date();
String timestamp = Long.toHexString(date.getTime()).toUpperCase();
String id = randomPrefix.concat(timestamp);
我不太擅长概率,但我想知道是否有其他操作可能导致字符串长度较短的这个值同样低(甚至更好的机会看不到重复)。
像外行人一样说话,串联应该 X 重复的机会,而加法会 + 它(重复的机会更高)。
请提出其他方法来生成更清晰和更短的 ID(或确认这是否正确)。
PS:请原谅我的外行语言,正在努力。:(