java生成纯数字不重复的8位流水号
以下是一个简单的Java代码示例,可以生成8位数字的不重复流水号:
import java.util.HashSet;
import java.util.Random;
import java.util.Set;
public class SerialNumberGenerator {
private static final int MAX_SERIAL_NUMBER = 99999999;
private static final int MIN_SERIAL_NUMBER = 10000000;
private static final int SERIAL_NUMBER_LENGTH = 8;
private static final Set<Integer> usedSerialNumbers = new HashSet<>();
public static synchronized int generateSerialNumber() {
int serialNumber;
do {
serialNumber = new Random().nextInt(MAX_SERIAL_NUMBER - MIN_SERIAL_NUMBER + 1) + MIN_SERIAL_NUMBER;
} while (usedSerialNumbers.contains(serialNumber));
usedSerialNumbers.add(serialNumber);
if (usedSerialNumbers.size() > MAX_SERIAL_NUMBER - MIN_SERIAL_NUMBER + 1) {
throw new RuntimeException("Exhausted all possible serial numbers.");
}
return serialNumber;
}
public static String generateSerialNumberString() {
int serialNumber = generateSerialNumber();
return String.format("%0" + SERIAL_NUMBER_LENGTH + "d", serialNumber);
}
}
使用方法:
String serialNumber = SerialNumberGenerator.generateSerialNumberString();
每次调用generateSerialNumberString()方法都会返回一个新的、8位数字的不重复流水号。如果流水号已经用完了(达到了99999999个),则会抛出RuntimeException异常
原文地址: https://www.cveoy.top/t/topic/huBV 著作权归作者所有。请勿转载和采集!