プログラムを作成しているときに、作成したいくつかのオブジェクトに一意の ID を割り当てる必要があるというこの要件に遭遇しました。今、私は GUI でオブジェクトを動的に作成しています。最初は単純なカウンターを使用して、作成されたノードに int 値を割り当てましたが、問題なく動作しました。
ただし、このアプローチが引き起こす問題は、GUI の作成中にノードを削除する必要がある場合、この ID も削除され、二度と使用されないことです。次の新しいノードでは、毎回最新のカウンター値を使用する必要があり、プロセス中にノードが削除されると、多くの欠落した int 値が作成されます。
新しいノードの作成時に不足している ID を再利用したかったので、どのアプローチを採用すべきか混乱しています。
私のアイデア:
- 使用可能な値を含む ArrayList を使用し、さらにノードが削除された場合は、その ID がこのリストに追加されます。このリストを並べ替えて、新しいノードの最小値を使用します。結構ですが、この値を使用すると、リストから削除すると、インデックスが削除されず、問題が発生します。
- HashMap、上記と同様に、使用可能な ID を追加し、使用されていないものを削除しますが、この hashMap をソートする方法がわかりませんか???
どうすればいいのか教えてもらえますか?値をプッシュし、ソートし、最小値を使用できるスタックが必要な場合があります。使用した場合、このスタックから削除されます。このタスクを達成する方法についていくつかのアイデアを教えてください???