java 生成重复字符_Java 随机生成不重复字符串(五种方法)

一套优秀的随机字符串生成机制不仅需要确保全局唯一性,还需要考虑到性能等问题。翻看了之前写过的一篇生成三位整数随机数的博文《Java 生成三位随机数》,发现她满足了当时的需求,现在提供一个基于她的plus版本,提高随机数的应用范围和复杂度。本篇文章带大家探究一下如何用字母和数字生成随机字符串。

前言

用字母和数字随机生成不重复的字符串需要满足如下条件:

唯一性:确保每个字符串都是系统中独一无二的,使得可以根据此字符串进行反向推导。

随机性:满足难于从字符串上推断出生成机制的要求。

高效性:算法简单,时间复杂度低,或者不过度耗费系统资源。

简洁性:用户可以方便的识别。

例如,我们平时看到的邀请码、短信验证码或者图形验证码,就是一组随机字符串,由此可见,随机字符串的应用非常广,老铁们需要了解一下她的生成机制。这些随机字符串的长度通常在6位左右,就是为了满足简洁性。

随机生成字符串

这里提供一个随机生成字符串的工具类,里面包括五种生成机制,源码如下。当然,为了达到不重复的目的,生成随机字符串后,需要到数据库中查重,如果重复,则继续生成新的字符串,直到拿到不重复的字符串为止。

import java.util.Arrays;

import java.util.Collections;

import java.util.List;

import java.util.Random;

/**

* 用字母和数字生成不重复的随机字符串

*

* @aut

你可能感兴趣的:(java,生成重复字符)