定期的に新しいアイテムが追加されるオブジェクト配列を実装したいアプリを書いています。
最後に追加されたオブジェクトがどれで、そのオブジェクトを位置 0 に配置することを検討していたかを常に知りたい (したがって、各アイテムを 1 インデックス下に最大 130 アイテムにプッシュする)
これは、リストを使用して実装するのはかなり簡単です
items.Insert(0,new item());
items.RemoveAt(130);
これにより、各アイテムが自動的に押し下げられ、130 でアイテムが削除されますが、これは配列ではそれほど単純ではありません
の線に沿ったどこかで私の最初の考え
for(int i = 129; i>0;i--)
{
items[i] = items[i-1];
}
items[0] = new item();
これにより、最新のアイテム (インデックス [0] を介して) に簡単にアクセスでき、前の各アイテムは作成順 (1 -> 129) にアクセスできます。
これ自体はかなり単純ですが、これを実行する他の方法があるかどうか疑問に思っていました。
編集:迅速な返信をありがとう、
私はこれについていくつかのテストを実行しました(100万回の反復を使用)。ここではキューメソッドが最も速いように見えますが、100万アイテムを処理するのに50%長くかかったリストよりもわずかに長いだけです
キュースタック オプションを調べてみようと思います
再度、感謝します;