ArrayListまたはLinkedListをバックエンドとして使用して、Bagデータ型の実装を依頼しています。私はArrayListを選び、Collectionインタフェースのローカル実装を含め、独自の実装を作成しました。今、私はリストの中にリストを挿入するmyListクラスを使って、Bagのプロパティをどのように適合させるかの基本的なコンセプトに苦しんでいます。 ジェネリックにArraylistベースのバッグ/マルチセットを実装する
私のリストが設定されている方法
は、私は、サイズを追加、削除実装public interface Collection<E>
として私自身のコレクションのインターフェイスタイプを書いた理由で実装されていないすべてのメソッドを除き、通常のJava型を、次の、clear、contains、isEmptyおよびtoArrayメソッド
リスト型が宣言されているように3つのプライベートフィールドを持つ
public class List<E> implements Collection<E>
:
private int size;
private E[] data;
private int growSize=10;
E[] data
が必要とされているものの要素タイプを保持し、growSizeリストを高めるために、新たなスロットの数であります必要に応じてサイズを変更します。これは、Listが単一のオブジェクトに対して伝統的に使用されている場合に効果的ですが、List型を挿入しようとするとエラーが発生します。
私は、このメソッドを実装しようとしている。まず
- :私はこれをしようとすると
public boolean add(Collection<E> c){ if (size < data.length){ data= (E[]) new Object[10]; data[0]= c; } }
、それは型の不一致二
- 第2に、それを修正するために何が必要ですか?
それを引き起こし、あなたのエラーとコードに関する詳細情報を提供し、 –
Eは、タイプ一覧>のものとすることができるしてください。あなたはどんなエラーを出していますか? – JustinKSU
'add'は何をしますか?単一の要素を追加しますか?またはいくつかのコレクションからすべての要素を追加しますか? – newacct