1. ホーム
  2. java

配列リストの特定の項目を先頭の項目に移動する方法

2023-09-24 08:20:35

質問

例:リスト

A B C D E

Cが与えられると、次のように切り替わります。

C A B D E

配列のサイズは変更され、いくつかの項目は実行時に削除される可能性があることに注意してください

Collections.swap(url, url.indexOf(itemToMove), 0);

この文はC A B D Eではなく、C B A D Eを出力してしまうので、うまくいきません。

ありがとうございます。

どのように解決するのですか?

あなたが欲しいのは、非常に高価な操作で ArrayList . これは、リストの先頭と の位置の間ですべての要素を移動させる必要があります。 C の位置までのすべての要素を一つ下にずらす必要があります。

ただし、本当にやりたいのであれば

int index = url.indexOf(itemToMove);
url.remove(index);
url.add(0, itemToMove);

もし、この操作が頻繁に行われ、ランダムアクセスがそれほど頻繁に行われないのであれば、別の List のような実装に切り替えることを検討するかもしれません。 LinkedList . また、要素の順序にこだわるのであれば、リストが正しいデータ構造であるかどうかを検討する必要があります。