列表中的唯一编号

用户名

您好,我有一个产生1000万员工的问题。每个人都必须具有唯一的ID号。

List<Employee> employeesL = new LinkedList<>();

for (var i = 0; i < 1000000; i++) {
        Employee employeeObject = new Employee();
        employeeObject.setId(Math.abs(gen.nextLong()));
        .
        .
        .
        employeesL.add(employeeObject);
        }

是否有可能比简单的while循环做得更好。我喜欢这样的东西:

public static void uniqueAdd(List<Employee> employees, Employee employee)
    {
        Random gen = new Random();
        employee.setId(Math.abs(gen.nextLong()));

        while (employees.contains(employee.getId())) {
            employee.setId(Math.abs(gen.nextLong()));
        }
    }

唯一的问题是,用这种方法永远需要大量的员工。我也不能使用简单的迭代ID ++

编辑:我需要创建uniqueAdd方法!我的教授给我建议,我可以使用Set,例如HashSet

阿文德·库玛·阿维纳什(Arvind Kumar Avinash)

employees.contains(employee.getId())每次添加ID时都要检查的方式是一种无效的方式最简单的方法是在中创建static变量Employee并获取下一个ID,如下所示:

private static int id = 0;

public static int nextId() {
   return ++id;
}

然后,

for (var i = 0; i < 1000000; i++) {
    Employee employeeObject = new Employee();
    employeeObject.setId(Employee.nextId());
    .
    .
    .
    employeesL.add(employeeObject);
}

您甚至可以id按如下所示在构造函数中分配

this.id = nextId();

这样,您employeeObject.setId(Employee.nextId())在创建Employee对象时不必调用,并且id将自动为该对象分配一个唯一性

或者,

填充列表后employeesL,您可以使用以下机制设置id

Set<Integer> idSet = new HashSet<Integer>();
Random random = new Random();
while (idSet.size() != 10000000) {
    idSet.add(random.nextInt(Integer.MAX_VALUE));
}
System.out.println("10000000 unique IDs generated");

int i = 0;
for (Integer id: idSet) {
    employeesL.get(i).setId(id);
    i++;
}

如有任何疑问/问题,请随时发表评论。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

计算每个文件中的唯一编号

来自分类Dev

数组或图像中的唯一值编号

来自分类Dev

PHP数组中的唯一编号

来自分类Dev

查找出现在两个不同列表中的唯一编号

来自分类Dev

如何为列表项生成唯一编号

来自分类Dev

如何为列表项生成唯一编号

来自分类Dev

尝试查找列表的唯一编号时出现问题

来自分类Dev

列表中的唯一值

来自分类Dev

从数组中获取唯一编号,完全删除重复项

来自分类Dev

在Laravel 6中生成唯一编号

来自分类Dev

随机产生的唯一编号

来自分类Dev

如何给重复的唯一编号?

来自分类Dev

如何在MySQL中为唯一值生成唯一编号?

来自分类Dev

如何在MySQL中为唯一值生成唯一编号?

来自分类Dev

剔除验证在列表中是唯一的

来自分类Dev

在配对列表中查找唯一的配对

来自分类Dev

映射以在列表中添加唯一的列名

来自分类Dev

从对象列表中获取唯一的对象

来自分类Dev

从列表中获取唯一值

来自分类Dev

通用列表中的唯一类

来自分类Dev

集列表中的唯一项

来自分类Dev

Python 列表中的唯一值

来自分类Dev

比较下一行中的可用列表打印编号

来自分类Dev

SQL 中的唯一标识符数据类型是否与 Access 中的自动编号相同?

来自分类Dev

如何为唯一的元素分配编号?

来自分类Dev

通过按钮单击生成唯一编号

来自分类Dev

未排序集的唯一编号

来自分类Dev

如何仅打印唯一的案例编号?

来自分类Dev

在LibreOffice Calc中生成唯一编号