相关疑难解决方法(0)

查找列表中最低的未使用唯一ID

说有一个清单.列表中的每个项目都有唯一的ID.

List [5, 2, 4, 3, 1]
Run Code Online (Sandbox Code Playgroud)

当我从此列表中删除项目时,项目中的唯一ID随之而来.

List [5, 2, 3, 1]
Run Code Online (Sandbox Code Playgroud)

现在说我想在列表中添加另一个项目,并为其提供最低的唯一ID.

在向列表中添加新项目时,获取最低唯一ID的最简单方法是什么?

这里有限制:如果我在删除项目时没有重新分配另一个项目的唯一ID,我更喜欢它.

我意识到,如果我在删除4时将唯一ID 5重新分配给唯一ID 4,那么很容易找到唯一ID.然后我可以获得列表的长度(5)并创建具有该编号的唯一ID的新项目.

那么还有另一种方法,那就是不涉及遍历整个列表?

编辑:

语言是java,但我想我正在寻找一种通用算法.

algorithm list

9
推荐指数
1
解决办法
3761
查看次数

在SQL表上获取未使用的唯一值

我有一个表有一个描述数字ID的列,这对所有行都是唯一的(但它不是主键).数字ID是有限的(假设答案可以从1到10)

 SELECT ID FROM TABLE;
 ID
 ---
 1
 2
 5
Run Code Online (Sandbox Code Playgroud)

我必须向用户(通过UI)呈现未使用的值,以便为新输入选择正确的值.我知道如何在代码上执行它(它是Grails Web应用程序),只需从数据库中获取所有ID并生成一个列表,其中包含不存在的ID.但我想知道是否有办法直接在SQL查询上执行此操作.

所以,该查询应该返回

ID
---
3
4
6
7
8
9
10
Run Code Online (Sandbox Code Playgroud)

数据库是Oracle,但也许有一种方法可以在其他数据库上工作.

sql oracle

2
推荐指数
2
解决办法
1194
查看次数

标签 统计

algorithm ×1

list ×1

oracle ×1

sql ×1