2016-04-15 5 views
0

私はちょっと創造力があり、Javaでいくつかのメソッドを再作成したいと思っていましたが、add()に悩まされました。JavaのArrayListのadd()メソッドの背後にあるアルゴリズムは何ですか?

私の考えは、まずサイズを増やす必要があるかどうかを確認し、必要ならば追加します。

その後、最初の配列をコピーして、配列内のインデックスと数値をシフトしますが、どうやってそれを行うのか、率直には分かりませんので、ここで尋ねています。

+1

なぜそこにシフトすることでしょうか? – harold

+0

javapを使用している場合、バイトコードをリバースエンジニアリングすることができます: 'javap -v java.util.ArrayList'。それは、あなたがカバーしていることを見るのを助けるかもしれません。 – ManoDestra

+3

また、[ソースコード](http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/8u40-b25/java/util/ArrayList.java?av = f)。 – azurefrog

答えて

4

ロジックは、この限りである:

public boolean add(E e) { 
    ensureCapacity(size + 1); // Increments modCount!! 
    elementData[size++] = e; 
    return true; 
} 

あなたは穴のJavaソースコードを見ることができますhere

+0

ありがとう、それは私が必要なものです。 – brajevicm

+0

あなたは歓迎です:) –

関連する問題