jsp在java列表中查找缺少的id
我试图制作一个表格,显示您可以为添加到数据库中的对象(员工)选择哪个id。 选项将是最后一个+1,以及所有通过删除对象而获得自由的“自由”id点
我正在尝试创建一个所有缺失ID的列表,但这对我来说并不管用。 我用jsp做了这个,它只显示了我的顶级id的所有id
int lastId =tableList.get(aAdmin.getAllEmps().size()-1).getId();
List <Integer> idList=new ArrayList<Integer>();
int counter=0;
itr= tableList.iterator();
int i=0;
while(itr.hasNext()){
Employee tempEmp=itr.next();
int id=tempEmp.getId();
if(id!=i+counter){
for(int j=0 ; j<id-(i+counter); i++)
idList.add(i+counter+j);
counter=counter+(id-(i+counter));
}
i++;}
Iterator<Integer> idItr=idList.iterator();
while(idItr.hasNext()) {
Integer tempInt= idItr.next();
%>
<tr>
<td>
<%=tempInt %><input type="radio" name="id" value="<%=tempInt%>">
</td>
</tr>
<%}%>
</table>
<br>
有什么想法吗
# 1 楼答案
让我们假设我们有一个整数列表(已经使用了ID),并期望有一个
Set<Integer>
用于空闲的ID定义一个max变量
浏览现有ID的列表
如果列表中的当前id大于
max
,则添加old max
和new max
之间的所有数字,并将max
设置为集合的新值。如果它小于max
,则将其从集合中移除# 2 楼答案
看来我找到了最好的解决办法
在我检查之前需要调试更多东西,但看起来答案是sql。 我把所有可能的id位置都放满了表,然后创建了一个连接,将其放入一个结果集中,并使用该结果集。 连接是-