メソッド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