現在、ArrayList を使用して要素のリストを格納しているため、特定の位置に新しい要素を挿入する必要があります。現在のサイズよりも大きい位置に要素を入力する必要があります。例:
ArrayList<String> arr = new ArrayList<String>();
arr.add(3,"hi");
OutOfBoundsException が発生することはすでにわかっています。注文を維持しながらこれを行うことができる別の方法または別のオブジェクトはありますか? これは、インデックスに基づいて要素を検索するメソッドがあるためです。例:
ArrayList<String> arr = new ArrayList<String>();
arr.add("hi");
arr.add(0,"hello");
インデックス 0 ではなく、インデックス 1 で「こんにちは」が見つかるはずです。
要約すると、間にある要素に null を手動で挿入する以外に、これら 2 つの要件を満たす方法はありますか。
- 現在のサイズよりも大きい位置に要素を挿入する
- リストの途中に要素を挿入すると、既存の要素が右に押し出される
Java ArrayList add item outside current sizeと HashMapを見てきましたが、HashMap は 2 番目の基準を満たしていません。どんな助けでも大歓迎です。
PS のパフォーマンスは、現時点では特に問題ではありません。
更新:なぜこれらの特定の要件があるのか についていくつかの質問がありました。これは、一連の操作をリスト(数式)に挿入する操作の変換に取り組んでいるためです。各操作には文字列が含まれます。リストに文字列を挿入/削除すると、既に適用されている各操作の追跡を通じて、(必要に応じて) 適用されていない操作が動的に更新されます。私の現在の解決策は、ArrayList のサブクラスを使用し、いくつかのメソッドをオーバーライドすることです。ただし、よりエレガントな方法があるかどうかは確かに知りたいです。