質問はそれをすべて言います..
リストのコードから:
メソッドを追加:
public boolean add(E e) { ... }
一方、メソッドを削除します:
public boolean remove(Object o) { .. }
これには具体的な理由はありますか?
質問はそれをすべて言います..
リストのコードから:
メソッドを追加:
public boolean add(E e) { ... }
一方、メソッドを削除します:
public boolean remove(Object o) { .. }
これには具体的な理由はありますか?
javadocから:
このリストに要素が含まれていない場合、変更されません
したがって、ここに型制約を追加してもまったく役に立ちませんが、on の制約add
により、コンパイル時にリストにボックスに書かれている内容が含まれることが保証されます。
メソッドは
指定された要素の型がこのリストと互換性がない場合は ClassCastException (オプション)
ArrayList 実装はこの例外をスローしません:
439 public boolean remove(Object o) {
440 if (o == null) {
441 for (int index = 0; index < size; index++)
442 if (elementData[index] == null) {
443 fastRemove(index);
444 return true;
445 }
446 } else {
447 for (int index = 0; index < size; index++)
448 if (o.equals(elementData[index])) {
449 fastRemove(index);
450 return true;
451 }
452 }
453 return false;
454 }
これは、削除操作を行う前に生オブジェクトのクラスを確認する必要がないことを意味します。