Integer.toString截取100万条uuid的前五位不重复Java代码
时间: 2024-04-15 09:28:28 浏览: 13
当处理大量的UUID时,需要考虑到性能和内存消耗。以下是一种可能的解决方案,它使用了HashSet来跟踪已经出现过的前五位,并使用StringBuilder来构建最终的结果。
```java
import java.util.HashSet;
import java.util.UUID;
public class UUIDProcessor {
public static String processUUIDs(int count) {
HashSet<String> uniquePrefixes = new HashSet<>();
StringBuilder resultBuilder = new StringBuilder();
for (int i = 0; i < count; i++) {
String uuid = UUID.randomUUID().toString();
String prefix = uuid.substring(0, 5);
if (!uniquePrefixes.contains(prefix)) {
uniquePrefixes.add(prefix);
resultBuilder.append(prefix).append("\n");
if (uniquePrefixes.size() == 100000) {
break;
}
}
}
return resultBuilder.toString();
}
public static void main(String[] args) {
String result = processUUIDs(1000000);
System.out.println(result);
}
}
```
在上面的代码中,`processUUIDs`方法使用一个循环生成UUID,并从中提取前五位作为前缀。如果该前缀在HashSet中不存在,则将其添加到HashSet和结果字符串中。当HashSet中的前缀数量达到100000时,循环停止。
请注意,由于UUID的唯一性特性,无法保证生成100000个不重复的前缀。上述代码将尽力生成不重复的前缀,但在某些情况下可能无法满足要求。