1

インターフェイスを使用してバッグデータ構造を実装する必要がありますjava.util.Collection。私はデータ構造の実際の実装について助けを求めていません。プログラムをコンパイルできません。実際にメソッドの実装を開始する前に、(メソッドの非機能シグネチャを使用して)インターフェイスの空白の実装をコンパイルするだけです。

class Bag<T> implements java.util.Collection<T> 
  {

  public void Collection () {

  }

  public boolean add(E e) {

  }

  public boolean addAll (Collection<? extends E> c) {

  }

  public void clear() {

  }

  public boolean contains(Object o) {

  }

  public boolean containsAll(Collection<?> c) {

  }

  public boolean equals(Object o) {

  }

  public int hashCode() {

  }

  public boolean isEmpty() {

  }

  public Interator<E> interator() {

  }

  public boolean remove(Object o) {

  }

  public boolean removeAll(Collection<?> c) {

  }

  public int size() {

  }

  public Object[] toArray() {

  }

  public <T> T[] toArray(T[] a) {

  }
}

コンパイラは、などのメソッドのパラメータでクラスEを見つけることができませんadd。のクラスを定義することになっていますEか、それともEが実際に何であるかについて理解していないことがありますか?コンパイラは、クラスコレクションが見つからないと言います(のようなメソッドのパラメータでaddAll)インポートしjava.util.Collectionますか、それとも他に知っておくべきことがありますか?コンパイラも何も知らclass Iteratorず、私も知らない。

これはおそらく初歩的なことだと思いますが、昨日はグーグルなどで何も見つかりませんでしたし、教授の講義はまったくプロジェクトに沿っていません。私はこれに迷っています。助けてくれてありがとう!

編集:また、私はこれについてあまり検索していませんが、誰かが「?」などの有用なことを教えてくれればpublic boolean addAll (Collection<? extends E> c) {}、それは大いにありがたいです。

4

6 に答える 6

2

Tまたはをtypeパラメーターとして使用Eし、クラス定義全体で一貫して使用します。

Javaドキュメントではを使用しEているため、たとえば最初の行を次のように変更できます。

class Bag<E> implements java.util.Collection<E> 

また、voidを返さないメソッドについては、値を返すか、例外をスローする必要があります。

public int size() {
    throw UnsupportedOperationException();
}
于 2011-11-04T21:12:22.983 に答える
0

EはTである必要があります。これは、保存する汎用タイプです。コンストラクターは、インターフェースではなくクラス用である必要があります。また、戻り値を持つメソッドに少なくともスタブされた戻り値を追加する必要があります。たとえば、戻り値がブール値の場合は「returnfalse」です。

お役に立てれば。

于 2011-11-04T21:12:25.477 に答える
0

importステートメントを次のように変更してみてくださいimport java.util.*;

于 2011-11-04T21:12:43.180 に答える
0

Eを宣言していないので、T代わりにを使用してください。また、戻ると宣言されている場所に戻る必要があります。

于 2011-11-04T21:13:12.100 に答える
0

ジェネリックパラメーターが呼び出され、メソッドの実装でT使用しています。要素タイプとして使用するE場合は、メソッドシグネチャを更新します。T

少なくとも、void以外のメソッドreturn null;などのダミーの実装がないとコンパイルされない可能性があります。return false;

java.util.Iteratorは、コレクション内の要素を反復処理できる一連のメソッドを記述するインターフェースです。そのインターフェイスとそのメソッドを実装するクラスのインスタンスを返します。YourListIteratorおそらく、リスト内の現在の場所への参照またはインデックスを保持し、対応する要素を返し、リストを進めます。

?このチュートリアルでは、ジェネリックス(の使用を含む)について説明します。

于 2011-11-04T21:13:49.620 に答える
0

JAVAでインターフェースを実装する前に、多くの基本的な学習を行う必要があります。「Javaで考える」などと読むことができますあなたのプログラムには複数の問題があります

  1. Collectionクラスのインポートがありません
  2. どのメソッドにもreturnステートメントはありません
  3. EをTに置き換えます
于 2011-11-04T21:14:05.423 に答える