java 生成随机long不重复
  wZlXd0nBtvLR 2023年11月28日 22 0

生成不重复的随机长整型数值

在Java中生成不重复的随机长整型数值是一个常见的需求。可以通过以下几种方法实现:

方法一:使用Set集合去重

可以使用Set集合来存储生成的随机长整型数值,Set集合会自动去重,确保生成的数值不会重复。

import java.util.HashSet;
import java.util.Random;
import java.util.Set;

public class RandomLongGenerator {

    public static void main(String[] args) {
        generateUniqueRandomLongs(10);
    }

    public static void generateUniqueRandomLongs(int count) {
        Set<Long> set = new HashSet<>();

        Random random = new Random();
        while (set.size() < count) {
            long randomLong = random.nextLong();
            set.add(randomLong);
        }

        for (long value : set) {
            System.out.println(value);
        }
    }
}

在上述代码中,首先创建了一个Set集合用于存储生成的随机长整型数值。然后使用Random类生成随机数,并将其添加到Set集合中,直到集合大小达到指定的count值。最后,使用for-each循环遍历集合并打印其中的数值。

方法二:使用SecureRandom生成随机数

SecureRandom是Java提供的更安全的随机数生成器。相比于Random类,SecureRandom生成的随机数更加难以被猜测和预测。可以通过以下代码生成不重复的随机长整型数值:

import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
import java.util.HashSet;
import java.util.Set;

public class SecureRandomLongGenerator {

    public static void main(String[] args) {
        generateUniqueRandomLongs(10);
    }

    public static void generateUniqueRandomLongs(int count) {
        Set<Long> set = new HashSet<>();

        try {
            SecureRandom secureRandom = SecureRandom.getInstanceStrong();
            while (set.size() < count) {
                long randomLong = secureRandom.nextLong();
                set.add(randomLong);
            }
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }

        for (long value : set) {
            System.out.println(value);
        }
    }
}

在上述代码中,通过调用SecureRandom.getInstanceStrong()获取一个更安全的随机数生成器实例。然后使用类似于方法一的逻辑生成不重复的随机长整型数值。

方法三:使用UUID类生成随机字符串

如果不需要直接生成长整型数值,而是需要生成唯一的标识符,也可以使用UUID类生成随机字符串。UUID(Universally Unique Identifier)是一种标准的128位唯一标识符,可以通过以下代码生成不重复的随机字符串:

import java.util.HashSet;
import java.util.Set;
import java.util.UUID;

public class RandomStringGenerator {

    public static void main(String[] args) {
        generateUniqueRandomStrings(10);
    }

    public static void generateUniqueRandomStrings(int count) {
        Set<String> set = new HashSet<>();

        while (set.size() < count) {
            String randomString = UUID.randomUUID().toString();
            set.add(randomString);
        }

        for (String value : set) {
            System.out.println(value);
        }
    }
}

在上述代码中,使用UUID.randomUUID().toString()生成一个随机的UUID字符串,并将其添加到Set集合中。通过不断生成并添加字符串,确保集合中的元素不会重复。

总结

本文介绍了三种在Java中生成不重复的随机长整型数值的方法。第一种方法是使用Set集合去重,通过循环生成随机数,并将其添加到Set集合中,确保生成的数值不会重复。第二种方法是使用SecureRandom生成更安全的随机数,代码逻辑与第一种方法类似。第三种方法是使用UUID类生成随机字符串,通过不断生成并添加字符串,确保生成的字符串不会重复。

无论采用哪种方法,都可以在Java中生成不重复的随机长整型数值,满足各种需求。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月28日 0

暂无评论

推荐阅读
  2Vtxr3XfwhHq   2024年05月17日   55   0   0 Java
  Tnh5bgG19sRf   2024年05月20日   114   0   0 Java
  8s1LUHPryisj   2024年05月17日   49   0   0 Java
  aRSRdgycpgWt   2024年05月17日   47   0   0 Java
wZlXd0nBtvLR