有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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>

有什么想法吗


共 (2) 个答案

  1. # 1 楼答案

    让我们假设我们有一个整数列表(已经使用了ID),并期望有一个Set<Integer>用于空闲的ID

    定义一个max变量

    浏览现有ID的列表

    如果列表中的当前id大于max,则添加old maxnew max之间的所有数字,并将max设置为集合的新值。如果它小于max,则将其从集合中移除

  2. # 2 楼答案

    看来我找到了最好的解决办法

    在我检查之前需要调试更多东西,但看起来答案是sql。 我把所有可能的id位置都放满了表,然后创建了一个连接,将其放入一个结果集中,并使用该结果集。 连接是-

    SELECT tempTable.ID, Employees.ID FROM Employees RIGHT JOIN tempTable on Employees.ID=tempTable.ID WHERE (((Employees.ID)Is Null))