在制作我的程序时,我遇到了这个要求,我必须为我创建的一些对象分配唯一的 ID。现在我在 GUI 上动态创建对象,最初我使用简单的计数器将 int 值分配给创建的节点,它工作得很好。
然而,这种方法产生的问题是,如果在创建 GUI 时,如果必须删除某个节点,则该 id 也会被删除并且不再使用。对于下一个新节点,每次我必须使用最新的计数器值,如果在此过程中删除节点,这会产生大量缺失的 int 值。
我想在创建新节点时重用那些丢失的 id,为此我很困惑我应该添加哪种方法。
我的想法:
- 使用包含可用值的 ArrayList,加上如果删除了一个节点,它的 id 将添加到该列表中,我对该列表进行排序并为新节点使用最小值。很好,但是,当我使用这个值时,如果我从列表中删除它,索引不会被删除,这会导致问题。
- HashMap,与上面类似,我添加了可用的 id 并删除了未使用的,但不确定如何对这个 hashMap 进行排序???
你能建议我应该怎么做吗?可能我需要某种堆栈,我可以在其中推送值,对其进行排序并使用最小值,如果我使用过,它会从这个堆栈中删除,请给出一些关于如何完成这个任务的想法???