当前位置: 首页 > 知识库问答 >
问题:

在java中生成9位整数而不重复相同的数字

朱英范
2023-03-14

我是java编程新手,我正在使用数据库创建一个简单的银行管理系统。我需要创建一个账号为9位的用户账户,而不是以0开头。此外,所有的账号都必须不同。每次我运行程序时,它应该给我一个9位的号码,这个号码没有存储在“login_info”数据库中“account_number”下的“账户”表中。知道如何做到这一点吗?谢谢。

共有3个答案

司寇灵均
2023-03-14

例如:

final var digits = IntStream.range(1, 10).boxed().collect(Collectors.toList());
Collections.shuffle(digits);
final var result = digits.stream().reduce(0, (x, y) -> 10 * x + y);
System.out.println(result);
左丘昊天
2023-03-14

如果您希望数字是随机的,请创建一个从0到899 999 999的数字,然后添加10万(因此第一个数字永远不会是0)。如果数字存储在Arraylist中(在本例中称为nums),则以下代码应该会有所帮助:

        int num;
        Do{
            num = (int)(Math.random()*800000000)+100000000;
        }while (nums.contains(num));
        nums.add(num);
邵刚洁
2023-03-14

这就是我做时尚的方式:

假设我只能在数据库内读写:

-首先,将数据库的编号加载到一个新的HashSet中。

-之后,我会从从最低的数字开始计数到最高的数字。每次计数后,我会在HashSet中检查该数字是否已经存在(如果是,继续计数)。

-在找到一个数字后,我会找到最后一个找到的数字,所以你从最后一个站开始计数,而不是从下一次开始。

(如果您希望数字是绝对随机的,也可以滚动新的数字而不是计数。)

如果您可以更改数据库中的某些内容,我建议您在数字上设置自动递增选项。

 类似资料:
  • 问题内容: 下面的代码旨在生成间隔为[1,100]的五个伪随机数的列表。我为with设置了种子,它以unix时间返回系统时间。当我使用Microsoft Visual Studio 2013在Windows 7上编译并运行该程序时,它会按预期运行(请参阅下文)。但是,当我在Arch Linux中使用g ++编译器执行此操作时,它的行为就很奇怪。 在Linux中,每次将生成5个数字。每次执行后4个数

  • 本文向大家介绍C++生成不重复的随机整数,包括了C++生成不重复的随机整数的使用技巧和注意事项,需要的朋友参考一下 C++生成不重复的随机数,供大家参考,具体内容如下 给定正整数的范围[n,m],生成k个不重复的随机数字。 IDE是vs013。 运行结果: 这个程序可以用于班级内部按照学号进行随机抽签。 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 问题内容: 我正在尝试Java 7的 ThreadLocalRandom,并发现它在多个线程中生成完全相同的随机数。 这是我的代码,在其中创建5个线程,每个线程打印出5个随机数: 输出: 为什么对于每个线程和程序的每次执行都获得相同的随机数? 问题答案: 似乎有一个关于此问题的公开错误。看这里和这里

  • 问题内容: 听起来很简单…但是我一直在努力解决这个问题,试图找到一个解决方案。 对于一个数字范围,例如 1-12 ,我想在该范围内生成一个随机序列, 并 包括 1 和 12 。 不过我不想重复数字 。 所以我想要这样的东西-3,1,8,6,5,4 ..依此类推,每个数字从1到12。 然后,我想将这些随机数放入,并使用该数组“随机”选择并在jsp页面上显示一些项目(例如从数据库中提取的清单)。 到目

  • 在SDA中输入std代码时,我输入了带有零的std代码,但为什么零不在显示数组时的值中?

  • 我正在尝试生成位随机数。我可以生成一个随机数,但这里的情况是生成一个位数字。我尝试通过将随机数存储在数组中来执行此操作,但我需要它以长长格式而不是数组。