掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
リストに使われていない番号を取得するには (ID:46418)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
Delphiというよりアルゴリズムの問題になってしまうのですが TListから派生するクラスを使って、様々な要素を管理しています。 レコードの識別には重複しない「ID」が使われています。 新しいレコードが追加されると「リストに使われていないID」を 探し出して使うのですが、その部分に無駄がありそうです。 リストが追加されるだけなら問題は無いのですが 削除された場合には、未使用となったIDも再使用も考えています。 単純に考えると下記方法なのですが 件数が増えると時間がかかりそうです。 もっとよい方法があるのでしょうか? var i,j : Integer; f : Boolean; begin result := -1; j := 0; while j < 999999 do begin // 仕様状の最大件数を指定 f := False; for i := 0 to Count-1 do begin if Items[i].ID = j then begin f := True; break; end; end; if not f then begin result := j; exit; end; j := j + 1; end; end;
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.