私は立ち往生しています、私はこれを行う方法はありません。次利用可能なID
次の利用可能なIDを取得したいと考えています。 [ID:1,ID:2,ID:3]
がある場合、findId()
は4
(次に使用可能なID)を返します。
ID:2
が削除された場合は[ID:1,ID:3]
となるので、2
を返す必要があります。
何か助けてください!
public int findId() {
if (getAreas().isEmpty())
return 1;
List<Area> areas = new ArrayList<>(getAreas());
areas.sort(Comparator.comparingInt(AutoPayArea::getId));
for (int i = 1; i <= areas.size(); i++) {
if (i < areas.get(i - 1).getId()) {
return i;
} else {
return i + 1;
}
}
return -1;
}
通常、IDを連続させることには意味がありません。とにかくあなたの質問revalesとしてあなたのIDシーケンスには常に穴があります。現代のコンピュータには、大きな睡眠タイプに対処するための十分な記憶があり、長さを制限する必要はありません。また、IDを再利用することで、データベースなどで永続化されたときに、シード効果が発生する可能性があります。したがって、あなたはホメオパシー改善のためにコンピュータのCPU時間をウエストしてはいけません... –
次のID、次のIDは受け取りません – Max604
どうすればいいですか@TimothyTruckle – Max604