私はちょっと創造力があり、Javaでいくつかのメソッドを再作成したいと思っていましたが、add()
に悩まされました。JavaのArrayListのadd()メソッドの背後にあるアルゴリズムは何ですか?
私の考えは、まずサイズを増やす必要があるかどうかを確認し、必要ならば追加します。
その後、最初の配列をコピーして、配列内のインデックスと数値をシフトしますが、どうやってそれを行うのか、率直には分かりませんので、ここで尋ねています。
私はちょっと創造力があり、Javaでいくつかのメソッドを再作成したいと思っていましたが、add()
に悩まされました。JavaのArrayListのadd()メソッドの背後にあるアルゴリズムは何ですか?
私の考えは、まずサイズを増やす必要があるかどうかを確認し、必要ならば追加します。
その後、最初の配列をコピーして、配列内のインデックスと数値をシフトしますが、どうやってそれを行うのか、率直には分かりませんので、ここで尋ねています。
なぜそこにシフトすることでしょうか? – harold
javapを使用している場合、バイトコードをリバースエンジニアリングすることができます: 'javap -v java.util.ArrayList'。それは、あなたがカバーしていることを見るのを助けるかもしれません。 – ManoDestra
また、[ソースコード](http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/8u40-b25/java/util/ArrayList.java?av = f)。 – azurefrog