メソッドaddAll(int index, Collection<? extends E> c)
およびメソッドは、要素が正常に追加されたことを通知するためにadd(E e)
a を返します。boolean
一方、そうでadd(int index, E element)
はありません。
なぜこのようになっているのですか?要素を追加できるかどうかを知るにはどうすればよいですか?
メソッドaddAll(int index, Collection<? extends E> c)
およびメソッドは、要素が正常に追加されたことを通知するためにadd(E e)
a を返します。boolean
一方、そうでadd(int index, E element)
はありません。
なぜこのようになっているのですか?要素を追加できるかどうかを知るにはどうすればよいですか?
add(E)
のメンバーですCollection
。一部の種類のコレクションSet
(特に一意性が保証される) では、要素が既にコレクションに含まれているため、要素の追加が予期せぬ方法で「失敗」することがあります。その場合、ブール値の戻り値が役立ちます。
add(int, E)
一方、 は のメンバーでありList
、要素をリストに追加すると、このように失敗することはありませんList
。定義により、 は重複する要素を含むことができます。
addAll(int, Collection<E>)
は少し難しいです。のメンバーでList
あるため、定義上、追加は拒否されません。Javadoc によると、「呼び出しの結果としてこのリストが変更された場合」に true が返されます。引数が空のコレクションの場合、false が返される可能性があると思います。これはあまり役に立たないようです。
ただし、addAll(Collection<E>)
inCollection
がありfalse
、追加されたすべての要素が重複し、コレクションがSet
. したがって、List
メソッドが返されるのは、実際の必要性からではなく、対称性boolean
のためだと思います。Collection